题解 | #判断是不是平衡二叉树#

判断是不是平衡二叉树

https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222

public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        // 使用递归来完成
        // 比较左右子树的高度来判断是否为平衡二叉树
        // 所以定义一个计算二叉树高度的方法
        if(root == null ){
            return true;
        }
        // 计算左右子树的高度
        int leftDepth = getDepth(root.left);
        int rightDepth = getDepth(root.right);
        return Math.abs(leftDepth - rightDepth) <= 1 && IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);

        
    }
    private int getDepth(TreeNode root){
        if(root == null){
            return 0;
        }
        // 计算高度,这里也需要递归操作
        return Math.max(getDepth(root.left) , getDepth(root.right)) + 1;
    }
}

思路:这里面涉及到两个知识。求二叉树的高度,利用递归。每一层,找左右子树的最大高度,然后加一。

判断是否是平衡二叉树,首先root的高度差是<= 1的,并且它的左右子树也得这样,所有最后return的部分是三个内容进行&&操作。

全部评论

相关推荐

人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
程序员小白条:主要没亮点,项目也是网上的,平平无奇,那只能海投了,奖项总得有一些,然后就是现在最好是前后端都会,自己能做项目并且运维的,要么找星球项目改改,要么找个开源项目改改,自己能拓展功能才是主要的,跟做效率很低很低
点赞 评论 收藏
分享
07-18 15:02
门头沟学院 Java
刚打开网申页面就不想填了,还是不要为难自己了
poppinzhan...:多益老行业毒瘤了,碰到徐波这种恶心的烂人,去了也是受罪。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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