NC11 将升序数组转化为平衡二叉搜索树

将升序数组转化为平衡二叉搜索树

https://www.nowcoder.com/practice/7e5b00f94b254da599a9472fe5ab283d?tpId=188&&tqId=38669&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking

题目:简单题

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

思路:

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

代码:

    /**
     * 
     * @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;
    }
}
全部评论

相关推荐

06-26 19:47
中南大学 Java
点赞 评论 收藏
分享
自由水:笑死了,敢这么面试不敢让别人说
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务