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

判断二叉树是否为平衡二叉树

http://www.nowcoder.com/practice/f4523caf0205476985516212047ac8e7

利用两个递归函数,第一个递归函数是用来求当前结点的左右子树的高度;第二个递归函数是用来判断当前节点的左右子树是不是平衡二叉树。

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return bool布尔型
     */
    public boolean isBalanced (TreeNode root) {
        // write code here
        if(root==null)
            return true;

        if(Math.abs(isB(root.left)-isB(root.right)) > 1)
            return false;

        return isBalanced(root.left)&&isBalanced(root.right);
    }

    public int isB(TreeNode root){
        if(root==null)
            return 0;

        int l = isB(root.left);
        int r = isB(root.right);

        return Math.max(l,r) + 1;
    }
}
全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务