我的思路是先求出正常的层序遍历,然后他说锯齿状也就是将层号为奇数的利用reverse()这个函数反转。
import collections
class TreeNode(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def zigzagLevelOrder(self, root):
if not root:
return []
Q=collections.deque() #建立双端队列
# node=Q.popleft() 从队首取元素
# Q.append() 添加元素
Q.append(root)
res=[]
while Q:
p = []
n=len(Q)
for _ in range(n):
node=Q.popleft()
p.append(node.val)
if node.left:
Q.append(node.left)
if node.right:
Q.append(node.right)
res.append(p[:])
for i in range(len(res)):
if i%2==1:
res[i].reverse()
return res