返回首页

深度优先搜索 高频追问 Q&A

1. Q: DFS 和 BFS 本质区别?

A: DFS 深入后回溯,BFS 按层扩展。

2. Q: DFS 为什么容易爆栈?

A: 递归深度过深。可改显式栈迭代实现。

3. Q: 图 DFS 为什么必须 visited?

A: 防止回路导致重复遍历甚至死循环。

4. Q: 回溯和 DFS 什么关系?

A: 回溯是带“撤销选择”的 DFS。

5. Q: 什么时候用递归,什么时候用迭代?

A: 规模小/结构清晰可递归;深度大或线上稳定性优先迭代。

6. Q: 复杂度怎么估?

A: 图遍历通常 O(V+E),回溯按搜索树分支数与深度估计。