劍指offer之之字形列印二叉樹

2021-08-24 20:47:57 字數 810 閱讀 8063

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

前面講述了分行分成列印二叉樹,這裡要之字形。

例子:

//                8

// 4 12

// 2 6 10 14

// 1 3 5 7 9 11 13 15

列印結果應該是:

8

12 4

2 6 10 14

15 13 11 9 7 5 3 1

所以,我們要注意節點的奇偶性,需要使用兩個棧來分別儲存當前層的節點和下一層的節點。

vectorint>

>

print

(treenode* proot)

results.

push_back

(res);}

//把棧2中的元素都pop()到vector中,並且把節點的右,左節點push到棧1中

elseif(

!stack2.

empty()

) results.

push_back

(res);}

}return results;

}

之字形遍歷是挺複雜的,我們需要舉乙個例子,具體分析,我們才又可以找到方法和規律。比如找到需要兩個棧,找到兩個棧需要相互交換

劍指offer 之字形列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。利用兩個棧 定義乙個兩個棧的陣列 用current和next分別指示當前層和下一層,如果當前層是奇數層 current 0 則下一層先入棧左節點再入棧右節點...

劍指offer 之字形列印二叉樹

請實現乙個函式按照之字形順序從上向下列印二叉樹。即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。輸入如下圖所示二叉樹 8,12,2,null,null,6,4,null,null,null,null 8 12 2 6 4 輸出 8 2,1...

劍指Offer 之字形列印二叉樹 Python

題目要求 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。解題思路 之字形列印 先遍歷後進來的節點的子樹 類似於棧的思想 設定乙個棧用來裝上一層的節點 源節點,根據這乙個棧的節點遍歷它的左右子樹,遍歷完這...