这个题和jz055II相似。这个算法的时间复杂度是O(N),空间复杂度是O(N)。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
def dfs(node):
if not node:
return 0
left = dfs(node.left)
if left == -1:
return -1
right = dfs(node.right)
if right == -1:
return -1
return max(left, right) + 1 if abs(left - right) <= 1 else -1
return dfs(root) != -1
PREVIOUSjz056I.数组中数字出现的次数
NEXTlc136.只出现一次的数字