LeetCode4

##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;
}