LeetCode 面试题 04.02.最小高度树

题目:简单题

给定一个有序整数数组,元素各不相同且按照升序排列,编写一个算法,创建一颗高度最小的二叉搜索树。

思路
高度最小,构建的时候让这棵树左子节点右子节点都有元素就是高度最小——即构建平衡二叉搜索树,数组中心元素为根节点元素。

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    
    public TreeNode sortedArrayToBST(int[] nums) {
    
    
        return help(nums,0,nums.length-1);
    }
    public TreeNode help(int[] nums,int left,int right){
    
    
        if(left>right){
    
    
            return null;
        }
        int mid=(left+right)/2;
        TreeNode root=new TreeNode(nums[mid]);
        root.left=help(nums,left,mid-1);
        root.right=help(nums,mid+1,right);
        return root;
    }
}

おすすめ

転載: blog.csdn.net/weixin_43744992/article/details/121758176