剑指Offer JZ39 平衡二叉树(JavaScript)

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:385030
本题知识点: 树 dfs

题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树
平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

示例1
输入
{1,2,3,4,5,6,7}
返回值
true

思路:分别得到根节点左右子树的最大值,即层级,然后相减得到结果若高度差绝对值不超过1即可

function IsBalanced_Solution(pRoot) {
    
    
    if (!pRoot) {
    
    
        return true
    }
    return (Math.abs(getMaxDepth(pRoot.left) - getMaxDepth(pRoot.right)) <= 1)
}


function getMaxDepth(root) {
    
    
    if (!root) return 0
    return Math.max(getMaxDepth(root.left), getMaxDepth(root.right)) + 1
}

猜你喜欢

转载自blog.csdn.net/weixin_44523860/article/details/115011795