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

2021-09-27 04:09:54 字數 721 閱讀 5978

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

對於奇數層,它的(從左往右的)每個節點邊輸出邊按左孩子、右孩子的順序壓棧,該層的下乙個層為偶數層,彈棧時就是從右往左輸出。

對於偶數層,它的(從右往左的)每個節點邊輸出邊按右孩子、左孩子的順序壓棧,該層的下乙個層為奇數層,彈棧時就是從左往右輸出。

奇偶層需要用兩個不同的棧。

畫圖很容易理解。

/*

struct treenode

};*/

class solution

if(temp.size())

}else

if(temp.size())}}

return res;

}};

下面這個時剛開始寫的,錯了。後來改正確了,思路很簡單可還是不知道這個怎麼錯的。。。

經過一番肉眼debug終於肝出來錯在哪了。。。對於最後一行,當兩個棧所有元素都出棧,但此時最後一行還沒儲存進res,但最外層的while已經終止。所以無論如何最後一行無法輸出。

/*

struct treenode

};*/

class solution else

}elseelse}}

return res;

}};

劍指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

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