- 访问初始顶点v,并标记为已访问。
- 从v出发深度遍历,首先遍历v的第一个邻接顶点w。
- 对w做步骤2的操作,一直遍历到树的最深处。
- 如果不能继续向下遍历,就返回上一层顶点,并从这个顶点出发寻找下一个未访问的邻接顶点。
- 重复3、4直到遍历完所有连通分量。

DFS的主要特点:
- 不需要按序访问顶点,可以在任一顶点作为根开始。
- 可能存在死胡同,需要回溯。
- 对不连通的图,无法完全遍历。
- 时间效率比BFS高,空间复杂度较高。
常见应用:
- 寻找全部路径 - 比如迷宫求解、骑士巡逻问题
- 检测环 - 对有向无环图的拓扑排序
- 二叉树相关问题 - 遍历二叉树
- 排列组合问题