7.10 判断平衡二叉树

83 阅读1分钟

平衡二叉树 :

[](剑指 Offer 55 - II. 平衡二叉树 - 力扣(LeetCode)

0466.png

判断平衡二叉树需要判断每个结点的左右子树深度相差是否大于一 。所以要单独写一个统计树高度的函数 。

var depth = function(node){        // 统计树高度的函数
    if(node===null) return 0;
    return Math.max(depth(node.left),depth(node.right)) + 1;
}
var isBalanced = function(root) {
    if(root===null) return true;
    else
    {
       var left = depth(root.left);    
       var right = depth(root.right)    // 分别统计左右子树的高度
       if(left-right > 1||right-left>1) return false;
       else return true&&isBalanced(root.left)&&isBalanced(root.right);
                                     // 对每个结点都进行判断
    }

};