劍指offer 32 從上到下列印二叉樹

2021-10-06 17:36:58 字數 1272 閱讀 2981

2.分行從上到下列印二叉樹

3. 之字形列印二叉樹

從上到下列印出二叉樹的每乙個節點,同一層的節點按照從左到右的順序列印

上圖中的二叉樹,則依次列印出 [8,6,10,5,7,9,11]

bfs(廣度優先搜尋)

先擴充套件根節點

再依次擴充套件根節點的左右兒子,也就是從左到右擴充套件第二層節點

再依次從左到右擴充套件第三層節點

依次類推

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

return res;}};

從上到下按照層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行

二叉樹的結果為;

6 10

5 7 9 11

null表示一行的結尾

在每一層結束的時候,往queue裡塞乙個null做為標記

queue讀取乙個數出來後,看看是不是標記符null,如果是說明這層已經結束。

class solution 

else

}return res;}};

請實現乙個函式,按照之字行順序列印二叉樹,即第一行按照從左到右的順序列印,第二行按照從右到左的順序列印,第三行按照從左到右的順序列印。其他行以此類推

二叉樹的結果

10 6

5 7 9 11

按照題2

奇數行 從左到右

偶數行 從右到左【設定乙個 bool 變數】

class solution 

else

}return res;}};

劍指offer 32 從上到下列印二叉樹

宣告 本系列部落格是對何海濤 劍指offer 的關鍵點總結。從上到下列印出二叉樹的每乙個結點,同一層的結點按照從左到右的順序列印。如二叉樹 8 6 5,7 10 9,11 列印出8 6 10 5 7 9 11 1 使用佇列儲存要訪問的結點 2 從根結點開始,每次列印結點的時候,如果該結點有子結點,則...

劍指Offer32 從上到下列印二叉樹

class solution vector int res queue que que.push root while que.empty return res 1.常規寫法 o n 遍歷n個結點,o n 需要乙個佇列和乙個一維陣列,最壞情況下平衡二叉樹時,佇列所需空間為n 2,而一維陣列所需的空間...

Python劍指offer 分行從上到下列印二叉樹

從上到下按層列印二叉樹,同一層的節點按照從左到右 的順序列印,每一層列印到第一行,例如本題中上乙個問題的二叉樹 輸出形式會是 86 10 5 7 9 11 這道題和前面一道題十分類似,也可以用乙個佇列來儲存要列印的節點。為了把二叉樹的每一行單獨列印到一行裡,我們需要兩個變數 乙個變數表示當前層中還沒...