Invert Binary Tree – Solution & Complexity
Watch: Invert Binary Tree with recursion
Swap each node's left and right children, then invert both subtrees. The recursion visits every node once: O(n) time and O(h) stack space. A BFS queue that swaps children level by level works too.
Solution Walkthrough
Step 1: Recognize the Pattern
The key pattern is: DFS swaps children at every node. Identify the state and invariant before coding.
Step 2: Build the Algorithm
Advance one state transition at a time. Mark or update state before exploring dependent work.
Step 3: Check Edge Cases
Test empty or minimal input, skewed shapes, duplicates where allowed, and impossible outcomes.
Step 4: Solution and Complexity
Time: O(n). Space: O(h).
Java/Go/Rust below are reference solutions for learning the pattern in those languages; only Python and JavaScript can be run and submitted for this problem, since the remote judge doesn't support the TreeNode structure yet.