解题思路:
递归
提交代码:
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if(nums.length==0) return null;
if(nums.length==1) {
TreeNode node=new TreeNode(nums[0]);
return node;
}
int leftSize=nums.length/2;
TreeNode root=new TreeNode(nums[leftSize]);
int[] left=new int[leftSize];
for(int i=0;i<leftSize;i++)
left[i]=nums[i];
root.left=sortedArrayToBST(left);
int rightSize=nums.length-leftSize-1;
int[] right=new int[rightSize];
for(int i=leftSize+1,j=0;i<nums.length;i++,j++)
right[j]=nums[i];
root.right=sortedArrayToBST(right);
return root;
}
}
运行结果: