美文网首页
[二叉树] 判断二叉树是否平衡二叉树

[二叉树] 判断二叉树是否平衡二叉树

作者: 爱上落入尘世间的你 | 来源:发表于2017-11-13 16:21 被阅读0次

思路: 从根节点开始,判断左右子树是否是平衡的,如果都是平衡的,则判断左右子树的高度差是否不大于1

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

/*
 * @param root
 * @param depth 用来返回已经计算过的子树的深度,防止再次计算浪费性能
 */
function isBalance(root, depth)
{
    if( ! root)
    {
        return true
    }
    let depthLeft
    let depthRight
    if( ! isBalance(root.left, depthLeft))
    {
        return false
    }
    if( ! isBalance(root.right, depthRight))
    {
        return false
    }

    if(Math.abs(depthLeft - depthRight) > 1)
    {
        return false
    }

    depth = Math.max(depthLeft, depthRight)
    return true
}

复杂度: O(n)

相关文章

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 1 二叉树的最近公共祖先(leetcode 236) 2 判断是否为平衡二叉树 3 判断二叉树是否为满二叉树 4 ...

  • 剑指 offer:39、平衡二叉树

    39. 平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解题思路: 平衡二叉树:Wiki:在...

  • 平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 平衡二叉树(Self-balancing binary ...

  • 面试题:平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 知识点 平衡二叉树 Qiang的思路 平衡二叉树是指一个...

  • 平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 39、平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 牛客-剑指0ffer-平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 19.判断二叉平衡树

    题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 代码

  • Leetcode 110 平衡二叉树

    平衡二叉树 题目 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每...

网友评论

      本文标题:[二叉树] 判断二叉树是否平衡二叉树

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