Merge Two Binary Trees – Solution & Complexity
Solution Walkthrough
1. Recognize the Pattern
The key pattern is: synchronized preorder recursion over two trees at once, where a missing node on either side contributes 0 and an empty subtree on both sides ends the recursion.
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(min(m, n)) — recursion only descends as long as at least one of the two trees still has a node at that position; m and n are the node counts of t1 and t2. Space: O(min(m, n)) for the recursion stack in the worst case (skewed trees).
All 5 languages below run and submit against the remote judge for this problem — Java/Go/Rust use the same real TreeNode structural-type support the judge added for the rest of the linked-list/tree track.