递归探索图或树的所有分支,常用于遍历、路径查找、回溯

什么是深度优先搜索 (DFS)

DFS 是一种图遍历算法,从起点开始,沿着一条路径尽可能深入,直到无法继续,再回溯尝试其他路径。使用递归或栈实现。

🎯 为什么使用?

DFS 适合探索所有可能的路径、检测连通性、拓扑排序。当需要找到所有解而不是最优解时,DFS 是首选。

⚙️ 如何工作?

1. 访问当前节点,标记已访问 2. 递归访问所有未访问的邻居 3. 如果所有邻居都已访问,回溯到上一层 4. 重复直到所有节点都被访问

🎨 形象比喻

想象在迷宫中探索。你沿着一条路一直走到死胡同,然后回头到上一个岔路口,尝试另一条路。直到找到出口或走遍所有路径。

🔍 识别关键词

当你在题目中看到以下关键词时,考虑使用深度优先搜索 (DFS)

所有路径遍历连通岛屿组合排列

📊 时间空间复杂度

时间复杂度
O(V + E) 或 O(n)
空间复杂度
O(h),h 是递归深度

访问所有节点,空间取决于递归深度(树的高度)

?查看快捷键