层序遍历图或树,常用于求最短路径、层级遍历

什么是广度优先搜索 (BFS)

BFS 是一种图遍历算法,从起点开始,先访问所有距离为 1 的节点,再访问距离为 2 的节点,以此类推。使用队列实现。

🎯 为什么使用?

BFS 天然适合求最短路径(无权图)。当第一次到达目标时,走过的步数就是最短距离。也适合层序遍历、扩散传播类问题。

⚙️ 如何工作?

1. 将起点加入队列,标记已访问 2. 从队列取出节点,处理当前节点 3. 将所有未访问的邻居加入队列 4. 重复直到队列为空或找到目标

🎨 形象比喻

想象往平静的水面扔一块石头,波纹一圈一圈向外扩散。BFS 就是按照这种方式探索:先探索完第一圈,再探索第二圈,以此类推。

🔍 识别关键词

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

最短层序最近最少步数扩散感染

📊 时间空间复杂度

时间复杂度
O(V + E),V是节点数,E是边数
空间复杂度
O(V)

每个节点最多入队一次,队列最大存储一层的节点

?查看快捷键