平衡二叉树

1.题目:
输入一棵二叉树,判断该二叉树是否是平衡二叉树。(在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 )
2.思路:
判断一个数是否为平衡二叉树。平衡二叉树是左子树的高度与右子树的高度差的绝对值小于等于1,同样左子树是平衡二叉树,右子树为平衡二叉树。
方法一:自上而下的遍历

public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        //平衡二叉树:|leftHeight-rightHeight|<=1
        if(root==null){//判空
            return true;
        }
        if(Math.abs(leftHeight(root)-rightHeight(root))>1){//判断左右高度差值的绝对值
            return false;
        }else{
            return true;
        }
    }
    public int height(TreeNode node){//求当前节点的高度
        return Math.max(node.left==null?0:height(node.left),node.right==null?0:height(node.right))+1;//采用三目运算+递归的方式
    }
    public int leftHeight(TreeNode root){//当前节点的左节点高度
        if(root.left==null){//判空
            return 0;
        }
        return height(root.left);
    }
     public int rightHeight(TreeNode root){//当前节点的右节点的高度
        if(root.right==null){
            return 0;
        }
        return height(root.right);
    }
}
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务