劍指offer 分行從上到下列印二叉樹(32題)

2021-08-28 05:24:38 字數 492 閱讀 5083

題目:分行從上到下列印二叉樹,從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印至一行。

解決二叉樹的遍歷問題無外乎就是三種遍歷方法,此處增加了按層遍歷的條件,即廣度優先遍歷。解決廣度優先遍歷,首先想到運用佇列。同理,解決深度優先遍歷,首先想到到家用遞迴。想必這是常識,應形成條件反射。

該題目的特點是分行哈,可通過設定每行元素個數標誌來實現。具體**見下:

#include#includeusing namespace std;

/*分行從上到下列印二叉樹(特點是分行哈,可通過設定每行元素個數標誌來實現)

*/struct treenode

};void print(treenode* root)

if (cur->right)

--tobeprinted;//每輸出乙個行內元素時,將個數進行減1

if (tobeprinted == 0)

}}

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

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

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

2.題目 2 3.題目 3 不分行從上到下列印二叉樹。從上到下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。輸入 8 6 10 57 911輸出 8610 57911這個其實就是層序遍歷。每次列印乙個結點的時候,若該結點有子結點,則讓該結點的子結點放到乙個佇列的末尾。接下來到佇列的首部...

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

普通的列印二叉樹很簡單,使用佇列就可以解決。但是我做的這個題目是要將每一層的節點都存起來,而且不同層之間是分開儲存的。其中有個問題就是我們如何去判斷某一層是遍歷完了,然後要到下一層了呢。我們可以這樣解決,記住每層的個數,這樣遍歷上一層時我們知道上一層個數了就不會遍歷下一層的節點 而遍歷過程中也要把子...