BFS

1.DFS 與 BFS 的特點比較:

在這裏插入圖片描述
在這裏插入圖片描述

BFS 的應用一:層序遍歷

在這裏插入圖片描述
乍一看來,這個遍歷順序和 BFS 是一樣的,我們可以直接用 BFS 得出層序遍歷結果。然而,層序遍歷要求的輸入結果和 BFS 是不同的。層序遍歷要求我們區分每一層,也就是返回一個二維數組。而 BFS 的遍歷結果是一個一維數組,無法區分每一層。
在這裏插入圖片描述
在這裏插入圖片描述
所以要在bfs的基礎上,在每一層遍歷開始前,先記錄隊列中的結點數量 n也就是這一層的結點數量),新創建一個數組level,將n個節點的值push進去,然後循環遍歷n個節點,分別將節點的左右節點加入隊列,供下次循環使用。

BFS 的應用二:最短路徑

leetcode695 島嶼的最大面積