美文网首页
LeetCode-110-平衡二叉树(python)

LeetCode-110-平衡二叉树(python)

作者: JunfengsBlog | 来源:发表于2019-08-23 22:04 被阅读0次
    平衡二叉树

    思路很清晰,就是获得每个节点的左右子树高度,然后返回 abs(左子树高度-右子树高度) <= 1的值。

    return self.eachNodeBalanced(root) and self.isBalanced(root.left) and self.isBalanced(root.right)
    

    这句代码就是返回每个节点是否满足平衡二叉树调节的布尔值的值,只要有一个是False,那么最终的返回值都是False,只有当所有的节点都满足平衡条件时,最终结果才是True。


    完整代码如下:

    class Solution:
        def isBalanced(self, root: TreeNode) -> bool:
            if root is None:
                return True
            return self.eachNodeBalanced(root) and self.isBalanced(root.left) and self.isBalanced(root.right)
    
        def getHeight(self, root):
            if root is None or root.val is None:
                return 0
            return max(self.getHeight(root.left), self.getHeight(root.right)) + 1
    
        def eachNodeBalanced(self, root):
            leftHeight = self.getHeight(root.left)
            rightHeight = self.getHeight(root.right)
            return abs(leftHeight - rightHeight) <= 1
            
    

    相关文章

      网友评论

          本文标题:LeetCode-110-平衡二叉树(python)

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