110. Balanced Binary Tree
Easy
Problem:
Given a binary tree, determine if it is .

Input: root = [3,9,20,null,null,15,7]
Output: true

Input: root = [1,2,2,3,3,null,null,4,4]
Output: false
Explanation: The left subtree, 2, of 1(root) and the right subtree, 2, have a height difference of 2. Therefore, it returns false.
https://leetcode.com/problems/balanced-binary-tree/
Solution:
# 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:
result = True
def isBalanced(self, root: Optional[TreeNode]) -> bool:
def dfs(node):
if node is None:
return 0
left = dfs(node.left)
right = dfs(node.right)
if abs(left - right) > 1:
self.result = False
return self.result
return max(left, right) + 1
if root:
dfs(root)
# Input: root = [], Output: true
return self.result
Last updated