Invert Binary Tree – Solution & Complexity

1. Recognize the Pattern

The key pattern is: DFS swaps children at every node. Identify the state and invariant before coding.

2. Build the Algorithm

Advance one state transition at a time. Mark or update state before exploring dependent work.

3. Check Edge Cases

Test empty or minimal input, skewed shapes, duplicates where allowed, and impossible outcomes.

4. Solution and Complexity

Time: O(n). Space: O(h).

def invert_tree(root: TreeNode) -> TreeNode:
    if root is None:
        return None
    root.left, root.right = invert_tree(root.right), invert_tree(root.left)
    return root

FAQ