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

判断是不是平衡二叉树

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

// 通过递归计算左右节点的深度判断是否为平衡二叉树




public class Solution {
    
    public boolean IsBalanced_Solution(TreeNode root) {
        
        if(computeDeep(root)<0){
            return false;
        }
        return true;
        
    }
    
    int computeDeep(TreeNode root){
        if(root==null){
            return 0;
        }
                // 递归计算左右子数的深度
        int left = computeDeep(root.left);
        int right = computeDeep(root.right);
                // 如果深度相差大于1,则返回负数值,向上返回都为负值
        if(left-right>1 || left-right<-1){
            return -2;
        }
                // 相差深度小于等于1,返回当前节点的深度
        return Math.max(left,right)+1;
        
    }
}        

全部评论

相关推荐

宇智波爱学习:我还没收到笔试
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务