按之字形順序列印二叉樹

2021-09-24 04:26:53 字數 705 閱讀 9008

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

運用兩個棧odd,even分別存放奇數層和偶數層的結點位址。1、當棧odd不為空時,依次將元素出棧並儲存結點數值,然後按先左後右的順序將結點的孩子結點壓入even棧中;2、當棧even不為空時,依次將元素出棧並儲存結點數值,然後按先右後左的順序將結點的孩子結點壓入odd棧中。迴圈執行上述兩步,直至遍歷完整個二叉樹(兩個棧中都沒有元素的時候)。

/*

struct treenode

};*/

class

solutionif(

!temp.

empty()

) res.

push_back

(temp)

; temp.

clear()

;while

(!even.

empty()

)if(!temp.

empty()

) res.

push_back

(temp)

; temp.

clear()

;}return res;}}

;

按之字形順序列印二叉樹

題目描述 按之字形順序列印二叉樹 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。解析 要分層列印,不能用常規方法,訪問乙個節點後,將該節點的左右子節點壓入佇列。奇數層從左到右列印,偶數層從右向左列印。使...

按之字形順序列印二叉樹

請實現乙個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。include iostream include stack using namespace std struct treenode void pri...

按之字形順序列印二叉樹

其實我們可以借鑑層次遍歷時候的思路,參見劍指offer 060 把二叉樹列印成多行,我們把層次遍歷的結果儲存在vector vector 中每一層儲存在乙個vector中,那麼我們輸出的時候就可以進行調整,按照之字形輸出即可 for int i 0 i if i 1 return ans 完整 如下...