題目描述:
給定乙個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。
示例:給定二叉樹[3,9,20,null,null,15,7],
返回鋸齒形層次遍歷如下:
[3],
[20,9],
[15,7]
# definition for a binary tree node.
# class treenode(object):
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class solution(object):
def zigzaglevelorder(self, root):
""":type root: treenode
:rtype: list[list[int]]
"""#若樹為空,直接返回空list
if root == none:
return
#用res儲存最終結果,用layer儲存當前層的節點,count表示層下標
res =
layer = [root]
count = 0
#當當前層不為空,則一直向下遍歷。當count為偶數下標層時:正序儲存節點值;當count為奇數下標層時:倒序儲存節點值
while len(layer):
temp =
if count%2 == 0:
for i in range(len(layer)):
else:
for i in range(len(layer)):
count = count + 1
layer_temp =
for i in range(len(layer)):
if layer[i].left != none:
if layer[i].right != none:
layer = layer_temp
return res
菜鳥一枚,**僅供參考,如有問題,望指正~ 二叉樹的鋸齒形層次遍歷
給定乙個二叉樹,返回其節點值的鋸齒形層次遍歷。即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回鋸齒形層次遍歷如下 3 20,9 15,7 解題思路 鋸齒形層次遍歷,又不單單是層次遍歷,一次從...
二叉樹的鋸齒形層次遍歷
給定乙個二叉樹,返回其節點值的鋸齒形層次遍歷。即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 複製 返回鋸齒形層次遍歷如下 3 20,9 15,7 複製 definition for a bi...
二叉樹的鋸齒形層次遍歷
給定乙個二叉樹,返回其節點值的鋸齒形層次遍歷。即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回鋸齒形層次遍歷如下 3 20,9 15,7 分析 鋸齒型的意思就是,第一層順序,第二層逆序,第三...