← Tree Traversal

Micro-Drill #198 — Recursive vs iterative tree traversal tradeoffs

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.

Practice Problems

Related Coding Drills

← Micro #197 Micro #199 →