Mental Model
DFS explores as far as possible along each branch before backtracking. It visits nodes by going deep first.
Analogy: Imagine exploring a maze by always taking the first unexplored path you find until you hit a dead end, then backtracking to try other paths.
Graph adjacency list: 0 -> [1, 2] 1 -> [2] 2 -> [0, 3] 3 -> [] Start at node 2 ↑
