给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。

    高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

    分析:
    这道题还是不难的,使用到了二分的思路,将数组一分为二后,中间的树即为二叉树的中间节点,二叉树的左右节点通过递归数组的左半边和右半边即可获取,注意边界条件,我所使用的是左闭右开的方式,还是相对容易做出来的。

    参考代码:
    public TreeNode sortedArrayToBST(int[] nums) {
    return sup(nums,0,nums.length);
    }
    private TreeNode sup(int[]nums,int left,int right){
    if(right-left<1) return null;
    if(right-left==1) return new TreeNode(nums[left]);
    int mid=left+(right-left)/2;
    TreeNode ret = new TreeNode(nums[mid]);
    ret.left=sup(nums,left,mid);
    ret.right=sup(nums,mid+1,right);
    return ret;
    }