LeetCode【108. 将有序数组转换为二叉搜索树】

又是二叉树,最开始都忘记了二叉搜索树是什么意思,搜索了一下:

二叉搜索树:左节点都小于右节点,在这里就可以考虑将数组中的中间值作为根节点

平衡二叉树:就是左右节点高度不大于1

树就可以想到递归与迭代,平衡二叉树就只需要每个节点都是平衡二叉树,不断取中点作为root。

不是很需要考虑二叉搜索树,因为给的数组就是有序数组。

class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return test(nums,0,nums.length-1);
    }
    public TreeNode test(int[] nums,int left,int right)
    {
        if(left > right)
        {
            return null;
        }
        int mid = (left + right)/2;
        TreeNode root = new TreeNode(nums[mid]);
        root.left = test(nums,left,mid-1);
        root.right = test(nums,mid+1,right);
        return root;
    }
}
原文地址:https://www.cnblogs.com/wzwi/p/10755081.html