二叉樹的鋸齒形層次遍歷 python

2021-09-19 12:48:33 字數 1142 閱讀 1923

題目描述:

給定乙個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。

示例:給定二叉樹[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 分析 鋸齒型的意思就是,第一層順序,第二層逆序,第三...