BFS

1.DFS 与 BFS 的特点比较:

在这里插入图片描述
在这里插入图片描述

BFS 的应用一:层序遍历

在这里插入图片描述
乍一看来,这个遍历顺序和 BFS 是一样的,我们可以直接用 BFS 得出层序遍历结果。然而,层序遍历要求的输入结果和 BFS 是不同的。层序遍历要求我们区分每一层,也就是返回一个二维数组。而 BFS 的遍历结果是一个一维数组,无法区分每一层。
在这里插入图片描述
在这里插入图片描述
所以要在bfs的基础上,在每一层遍历开始前,先记录队列中的结点数量 n也就是这一层的结点数量),新创建一个数组level,将n个节点的值push进去,然后循环遍历n个节点,分别将节点的左右节点加入队列,供下次循环使用。

BFS 的应用二:最短路径

leetcode695 岛屿的最大面积