JZ59 按之字順序列印二叉樹

2021-10-09 07:36:43 字數 765 閱讀 5929

題目描述:

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

題解:

由題意知,需要按s形列印二叉樹,實則為層序遍歷只是奇數層正序列印,偶數層逆序列印。

(1)設定乙個布林型的變數flag,奇數層置為true,偶數層置為false。

(2)列印時判斷flag,來決定如何列印。

public arraylist

>

print

(treenode proot)

queue

queue =

newlinkedlist

<

>()

; queue.offer (proot)

;// true就從左到右遍歷,false就從右到左遍歷

boolean flag =

true

;while

(!queue.isempty ())

if(flag)

else

queue.offer (node.left)

; queue.offer (node.right);}

flag =

!flag;

if(list.size (

)>0)

}return res;

}

59 按之字形順序列印二叉樹

題目描述 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。思路 利用兩個棧 stack1和stack2,分別存放奇數行結點和偶數行結點 設定行號變數,例如layer來表示奇數行或者偶數行。當列印stack...

59 按之字形順序列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。這道題還是二叉樹的層序遍歷思想,在每一層將資料存入另乙個棧中,其實也可以用佇列實現 struct treenode class solution if po...

59 按之字形順序列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。import j a.util.arraylist import j a.util.stack public class treenode public c...