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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


由于是升序的。拆分。

    // 拆分两部分 左部分 中间值 右部分
    public TreeNode sortedArrayToBST(int[] nums) {
        return dfs(nums,0,nums.length-1);

    }

    public TreeNode dfs(int[] nums, int l, int r) {
        // [0,1] 变成了:[0,-1] 0 [1,1]
        // 所以左半部分就是null
        if(l>r) {
            return null;
        }
        if(l == r) {
            return new TreeNode(nums[l]);
        }
        int mid = l+(r-l)/2;
        TreeNode left = dfs(nums,l,mid-1);
        TreeNode right = dfs(nums,mid+1,r);
        TreeNode root = new TreeNode(nums[mid]);
        root.left = left;
        root.right = right;
        return root;

    }
posted @ 2022-02-26 21:14  一颗青菜  阅读(3)  评论(0)    收藏  举报