把每一層的節點存放在佇列中,迴圈判斷佇列是否為空,每次迴圈取出佇列內節點,並把取出的節點的左右子節點存入佇列中。
public list
>
levelorder
(treenode root)
while
(!queue.
isempty()
)if(objects.
nonnull
(tmpnode.right))}
res.
add(tmp);}
return res;
}
請實現乙個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。
%2 如果是偶數列則反轉
if
(res.
size()
%2==1
) collections.
reverse
(cur)
;// 如果是偶數列則反轉
res.
add(cur)
;
廣度優先遍歷演算法
廣度優先搜尋 也稱寬度優先搜尋,縮寫bfs 是連通圖的一種遍歷策略。因為它的思想是從乙個頂點v0v0開始,輻射狀地優先遍歷其周圍較廣的區域,因此得名。一般可以用它做什麼呢?乙個最直觀經典的例子就是走迷宮,我們從起點開始,找出到終點的最短路程,很多最短路徑演算法就是基於廣度優先的思想成立的。type ...
廣度優先遍歷
廣度優先遍歷 breadth first search 類似於對樹的層序遍歷 遍歷規則為 首先訪問初始點vi,並將其標記為已訪問過,接著訪問vi的所有未被訪問過的鄰接點,其訪問次序可以任意,假定依次為vi1,vi2,vit,並均標記為已訪問過,然後在按照vi1,vi2,vit的次序,訪問每乙個頂點的...
廣度優先遍歷
還是上面那道題 深度遍歷一般是用遞迴,深度不斷增加,廣度搜尋一般用佇列這樣的形式儲存東西 include include using namespace std struct note int main book 51 51 int next 4 2 int head,tail int i,j,k,...