Leetcode Day13 4
劍指 Offer 32 - III. 從上到下打印二叉樹 III
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類推。
?
例如:
給定二叉樹: [3,9,20,null,null,15,7],
? ? 3
? ?/ \
? 9? 20
? ? /? \
? ?15? ?7
返回其層次遍歷結(jié)果:
[
? [3],
? [20,9],
? [15,7]
]
在前面一題的基礎(chǔ)上加個(gè)層數(shù)的判斷就可以啦,然后用[::-1]反轉(zhuǎn)(我試了試Reverse會(huì)報(bào)錯(cuò))
#?Definition?for?a?binary?tree?node.
#?class?TreeNode:
#?????def?__init__(self,?x):
#?????????self.val?=?x
#?????????self.left?=?None
#?????????self.right?=?None
class?Solution:
????def?levelOrder(self,?root:?TreeNode)?->?List[int]:
????????if?not?root:return?[]
????????res=[]
????????q=[]
????????q.append(root)
????????layer=1
????????while?q:
????????????tmp=[]
????????????l=len(q)
????????????for?i?in?range(l):
????????????????node=q.pop(0)
????????????????tmp.append(node.val)
????????????????if?node.left:
????????????????????q.append(node.left)
????????????????if?node.right:
????????????????????q.append(node.right)
????????????if?layer&1==0:
????????????????tmp=tmp[::-1]
????????????res.append(tmp)
????????????layer+=1
????????return?res
