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

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

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;
    }
}
全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
鼗:四级有点难绷,感觉能拿国家励志奖学金,学习能力应该蛮强的,四级确实不重要,但是拿这个卡你可是很恶心啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务