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

判断是不是平衡二叉树

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;
        
    }
}        

全部评论

相关推荐

刻苦的花生米刷了100道题:项目经历里面多写点技术点
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务