平衡二叉树判断

平衡二叉树

http://www.nowcoder.com/questionTerminal/8b3b95850edb4115918ecebdf1b4d222

public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        if(root == null) return true;
        int res = helpVerify(root);
        if(res == -1) return false;
        return true;
    }
    
    int helpVerify(TreeNode root){
        if(root == null) return 0;
        int left = helpVerify(root.left);
        if(left == -1) return -1;
        int right = helpVerify(root.right);
        if(right == -1 || Math.abs(left-right) > 1) return -1; 
        return Math.max(left,right)+1; 
    }
}
自底向上的进行判断:
如果中间发现了子树不是平衡的,那么就返回-1,减少后续的递归;
全部评论

相关推荐

01-12 09:24
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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