Balanced Binary Tree

平衡树注意两点,一个左右高度差不超过1,一个自己的左右子树都是平衡树

class Solution(object):
    def isBalanced(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        return self.helper(root)[0]

    def helper(self, root):
        if not root:
            return (True, 0)

        left = self.helper(root.left)
        right = self.helper(root.right)

        if abs(left[1] - right[1]) <= 1 and left[0] and right[0]:
            return (True, max(left[1], right[1]) + 1)

        return (False, max(left[1], right[1]) + 1)

results matching ""

    No results matching ""