给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。
public TreeNode sortedArrayToBST(int[] nums) {
if(nums.length==0) return null;
return BST(nums,0,nums.length-1);
}
public TreeNode BST(int[] nums,int left,int right) {
if(left>right) return null;
if(left==right) return new TreeNode(nums[left]);
int mid=left+((right-left)>>1);
TreeNode treeNode=new TreeNode(nums[mid]);
treeNode.right=BST(nums,mid+1,right);
treeNode.left=BST(nums,left,mid-1);
return treeNode;
}