Depth First Search
⏱ Time: O(N)💾 Space: O(H)
Traverse deep into a graph or tree before backtracking. Often implemented using recursion or an explicit stack. Excellent for exploring all paths or finding specific structures like connected components.
🎯 When to Use
- ✓Exploring all possible paths
- ✓Tree traversal (pre/in/post order)
- ✓Finding connected components
- ✓Backtracking problems
📝 Pseudocode
Depth First Search TemplateO(N)
1function dfs(node): 2 if node is null: 3 return 4 5 // pre-order processing 6 dfs(node.left) 7 // in-order processing 8 dfs(node.right) 9 // post-order processing
🏢 Real-World Use Cases
Meta
DOM Tree Traversal
Traversing nested DOM elements to render or update UI components efficiently.