广度优先搜索基础知识速览
一、面试常考点
1. BFS 本质
按层推进,先访问距离起点更近的节点。
2. 核心数据结构
队列 + visited。
3. 高频题型
最短路径(无权图)、层序遍历、最少步数问题。
二、模板
function bfs(start) {
const queue = [start]
const visited = new Set([start])
while (queue.length) {
const cur = queue.shift()
for (const next of cur.neighbors || []) {
if (visited.has(next)) continue
visited.add(next)
queue.push(next)
}
}
}
30 秒口述模板
我会把「广度优先搜索」分成三层来讲:先讲核心概念和它解决的问题,再讲一个高频场景与实现思路,最后补充常见坑点和优化方向。这样既能回答基础问题,也能接住面试官追问。
2 分钟口述模板
如果展开讲,我会按“定义 -> 原理 -> 场景 -> 取舍”四步回答。先说明「广度优先搜索」解决的核心问题和边界;再讲 1 到 2 个关键机制,解释为什么这样设计;然后结合一个真实业务场景说明如何落地;最后补充常见坑点、性能或稳定性优化,以及与相近方案的取舍标准。
这样回答的好处是:既有原理深度,也有工程落地感,面试官继续追问到实现细节时也能自然展开。