牛客NC11 将升序数组转化为平衡二叉搜索树 详细解读

题目:简单题


给定一个升序数组,转化为平衡二叉搜索树。
平衡:左右子树之差不大于1

思路:

本题的重点是平衡二字。所以可以以数组的中心为根节点,之后递归进行操作即可。

代码:

public class Solution {
    
    
    /**
     * 
     * @param num int整型一维数组 
     * @return TreeNode类
     */
    public TreeNode sortedArrayToBST (int[] num) {
    
    
        // write code here
        return dp(num,0,num.length-1);
        
    }
    public TreeNode dp(int num[],int left,int right){
    
    
        if(left > right){
    
    
            return null;
        }
        int val=(left+right)/2;
        TreeNode root=new TreeNode(num[val]);
        root.left=dp(num,left,val-1);
        root.right=dp(num,val+1,right);
        return root;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43744992/article/details/121611270