Tree Traversal Target: 15s
Recursive is cleaner, iterative is safer for deep trees. Know both — interviews often ask for iterative after recursive.
RECURSIVE vs ITERATIVE TRAVERSAL
────────────────────────────────
RECURSIVE: ITERATIVE:
+ Clean, readable + No stack overflow risk
+ Natural for trees + Can pause/resume
- Python recursion limit + O(1) extra space (Morris)
- Stack frame overhead - More complex code
WHEN TO USE ITERATIVE:
□ Deep trees (>1000 nodes) → recursion limit
□ Need to process nodes in specific order with state
□ Morris traversal needed (O(1) space)
□ Interview asks for iterative explicitly
CONVERSION PATTERN:
Recursive → Iterative:
1. Create explicit stack
2. Push root
3. While stack not empty:
- Pop node
- Process it (preorder) or push for later (inorder)
- Push children (right first, then left for preorder)
MORRIS TRAVERSAL: O(1) space
Uses threaded tree (temporary right pointers)
Only for inorder/preorder
Type it from memory. Go.