之字形列印二叉樹

2021-10-08 06:47:22 字數 1291 閱讀 4748

題目描述

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

class

treenode

:def

__init__

(self, x)

: self.val = x

self.left =

none

self.right =

none

class

solution

:def

print

(self, proot)

:# write code here

if proot:

stack01 =

[proot]

stack02 =

ret =

while stack02 or stack01:

while stack01:

temp = stack01.pop(0)

if temp.left:

if temp.right:

while stack02:

temp = stack02.pop(-1

)if temp.right:

stack01.insert(

0, temp.right)

if temp.left:

stack01.insert(

0, temp.left)

return ret

t1 = treenode(1)

t2 = treenode(2)

t3 = treenode(3)

t4 = treenode(4)

t5 = treenode(5)

t6 = treenode(6)

t7 = treenode(7)

t8 = treenode(8)

t9 = treenode(9)

t10 = treenode(10)

t1.left = t2

t1.right = t3

t2.left = t4

t2.right = t5

t3.left = t6

t3.right = t7

t5.left = t8

t5.right = t9

t7.right = t10

s = solution(

)ret = s.print(t1)

print

(ret)

之字形列印二叉樹

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

之字形列印二叉樹

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

之字形列印二叉樹

思路 首先我們需要逐層列印二叉樹,然後根據每一層的狀態判定是從左到右,還是從右到左。首先問題的核心其實是從上到下,從左到右列印二叉樹,只不過後面題目多了兩個要求,所以我們2 的大體框架應該是基於從上到下列印二叉樹 其次逐層列印二叉樹,實際上就是讓我們對每一層設定標誌位,然後根據標誌位去決定列印的情況...