題目
Given an array where elements are sorted in ascending order,
convert it to a height balanced BST.
因為已經是排序過的,所以就很簡單了
Binary Search Tree的特性就是左小右大
所以這一題就把在中間位置的值,拿來當Root然後左右跑遞迴
public class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if(nums==null)
return null;
if(nums.length==1)
return new TreeNode(nums[0]);
TreeNode node = BuildTree(0,nums.length-1,nums);
return node;
}
TreeNode BuildTree(int start,int end, int[]nums){
if(start>end)
return null;
int mid=(start+end)/2;
TreeNode node=new TreeNode(nums[mid]);
node.left=BuildTree(start,mid-1,nums);
node.right=BuildTree(mid+1,end,nums);
return node;
}
}
0 意見:
張貼留言