# 平衡二叉树

leetcode - 110. 平衡二叉树 (opens new window)

# 题目

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

平衡二叉树:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。

# 思路

判断当前节点的左右子树深度插值的绝对值是否是小于等于1的,且此节点的左右子树是否都是平衡的。

# 代码

# Johninch

const isBalanced = function(root) {
    const depth = (root) => {
        return !root ? 0 : Math.max(depth(root.left), depth(root.right)) + 1
    }

    if (!root) {
        return true
    }

    return (Math.abs(depth(root.left) - depth(root.right)) <= 1) && isBalanced(root.left) && isBalanced(root.right)
};

# niannings

function isBalanced(tree: IBinaryTreeBase) {
    return maxDepth(tree) - minDepth(tree) <= 1;
}
Last Updated: 4/27/2020, 5:02:21 PM