##108. Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
题意给一个升序的数组,转换成二叉平衡树。
注意数组是有序的。
思路:从数组的mid作为根节点出发,大于mid放在右节点,小于mid的放在左节点,递归构造。
学习掌握构造平衡二叉树的过程,重点在于如何处理递归
public TreeNode sortedArrayToBST(int[] nums) {
if(nums==null || nums.length==0) {
return null;
}
return sortedArrayToBSTUtil(nums,0,nums.length);
}
private TreeNode sortedArrayToBSTUtil(int[] nums,int start,int end) {
if(start>=end){
return null;
}
int mid = (start+end)/2;
TreeNode root = new TreeNode(nums[mid]);
root.left = sortedArrayToBSTUtil(nums,start,mid);
root.right = sortedArrayToBSTUtil(nums,mid+1,end);
return root;
}