# 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: Optional[TreeNode]) -> bool: res = [True] def dfs(root): if root is None: return 0 l = dfs(root.left) r = dfs(root.right) if not res[0]:) return -1 if abs(l - r) > 1: res[0] = False return -1 return 1 + max(l, r) dfs(root) return res[0] Complexity Time: O(n) Space: O(n)