LeetCode 103. Binary Tree Zigzag Level Order Traversal
考点 | 难度 |
---|---|
Tree | Easy |
题目
Given the root
of a binary tree, return the zigzag level order traversal of its nodes’ values. (i.e., from left to right, then right to left for the next level and alternate between).
思路
BFS:涉及到traverse tree by level的需要用BFS
create queue,用direction(1, -1)来表示某行traverse的方向,每次结束一行换一次方向。Python里可以用[::-1]
来reverse一个list。
答案 (python)
class Solution:
def zigzagLevelOrder(self, root):
if not root: return []
queue = deque([root])
result, direction = [], 1
while queue:
level = []
for i in range(len(queue)):
node = queue.popleft()
level.append(node.val)
if node.left: queue.append(node.left)
if node.right: queue.append(node.right)
result.append(level[::direction])
direction *= (-1)
return result