广度优先搜索

112 阅读2分钟

广度优先搜索

可以看到,「BFS 遍历」、「层序遍历」、「最短路径」实际上是递进的关系。在 BFS 遍历的基础上区分遍历的每一层,就得到了层序遍历。在层序遍历的基础上记录层数,就得到了最短路径。

BFS 可以用来解决「层序遍历」和「最短路径」的题目

层序遍历的一些变种题目:

对于最短路径问题,还有两道题目也是求网格结构中的最短路径,和我们讲解的距离岛屿的最远距离非常类似:

还有一道在真正的图结构中求最短路径的问题:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx 分界线 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  • 102. 二叉树的层序遍历 -- done:根据节点到根节点的距离对树的节点进行分层,每一层的节点都是从左到右遍历。

    • 解法一:广度优先搜索,迭代。关键点:第 k 次迭代前,队列里的是按从左到右排列的第 k 层节点。
    • 解法二:深度优先搜索,递归。关键点:递归时带上节点深度即可。
  • 1162. 地图分析 -- done

    • 关键点:把距离转换为 BFS 的层数