剑指offer--平衡二叉树

平衡二叉树

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

解法

平衡二叉树的概念 是 左子树和右子树的深度的差的绝对值 等于 1.如果不符合这个条件就是不是平衡二叉树
我们只需要判断左子树和右子树是否符合条件 就OK了。

代码

public class Solution {
    public int depth(TreeNode root){
        if(root == null) {
            return 0;
        }
        int left = depth(root.left);
        if(left == -1){
            return -1;
        }
        int right = depth(root.right);
        if( right == -1){
            return -1;
        }
        if( left - right < -1 || left - right > 1 ){
            return -1;
        }else{
            return left>right?left+1:right+1;
        }
    }

    public boolean IsBalanced_Solution(TreeNode root) {
        return depth(root) != -1;
    }
}
全部评论

相关推荐

头像
昨天 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务