美文网首页
T110、平衡二叉树

T110、平衡二叉树

作者: 上行彩虹人 | 来源:发表于2020-09-13 19:08 被阅读0次

    给定一个二叉树,判断它是否是高度平衡的二叉树。
    本题中,一棵高度平衡二叉树定义为:
    一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
    示例 1:
    给定二叉树 [3,9,20,null,null,15,7]

    3
    /
    9 20
    /
    15 7
    返回 true 。
    示例 2:
    给定二叉树 [1,2,2,3,3,null,null,4,4]

       1
      / \
     2   2
    / \
    

    3 3
    /
    4 4
    返回 false 。

    分别统计每个节点左右子树高度,然后分别判断是否是平衡二叉树。

        boolean res = true;
        public boolean isBalanced(TreeNode root) {
            defs(root);
            return res;
        }
        public int defs(TreeNode root){
            if(root == null)
                return 0;
            int left = defs(root.left);
            int right = defs(root.right);
            if(Math.abs(left - right) > 1)
                res = false;
            return Math.max(left, right) + 1;
        }
    

    相关文章

      网友评论

          本文标题:T110、平衡二叉树

          本文链接:https://www.haomeiwen.com/subject/rkloektx.html