108. 将有序数组转换为二叉搜索树
class Solution {
public TreeNode
sortedArrayToBST(int[] nums
) {
return nums
== null
? null
:buildTree(nums
,0,nums
.length
-1);
}
public TreeNode
buildTree(int[] nums
,int left
,int right
){
if(left
>right
) return null
;
int mid
= left
+ (right
- left
)/2;
TreeNode root
= new TreeNode(nums
[mid
]);
root
.left
= buildTree(nums
,left
,mid
-1);
root
.right
= buildTree(nums
,mid
+1,right
);
return root
;
}
}
59. 螺旋矩阵 II
class Solution {
public int[][] generateMatrix(int n
) {
int l
= 0, r
= n
- 1, t
= 0, b
= n
- 1;
int[][] mat
= new int[n
][n
];
int num
= 1, tar
= n
* n
;
while(num
<= tar
){
for(int i
= l
; i
<= r
; i
++) mat
[t
][i
] = num
++;
t
++;
for(int i
= t
; i
<= b
; i
++) mat
[i
][r
] = num
++;
r
--;
for(int i
= r
; i
>= l
; i
--) mat
[b
][i
] = num
++;
b
--;
for(int i
= b
; i
>= t
; i
--) mat
[i
][l
] = num
++;
l
++;
}
return mat
;
}
}
61. 旋转链表
class Solution {
public ListNode
rotateRight(ListNode head
, int k
) {
if(head
==null
||k
==0){
return head
;
}
ListNode cursor
=head
;
ListNode tail
=null
;
int length
=1;
while(cursor
.next
!=null
)
{
cursor
=cursor
.next
;
length
++;
}
int loop
=length
-(k
%length
);
tail
=cursor
;
cursor
.next
=head
;
cursor
=head
;
for(int i
=0;i
<loop
;i
++){
cursor
=cursor
.next
;
tail
=tail
.next
;
}
tail
.next
=null
;
return cursor
;
}
}
你知道的越多,你不知道的越多。
转载请注明原文地址:https://ipadbbs.8miu.com/read-48625.html