- Binary Tree Zigzag Level Order Traversal
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
** / \
15 7
return its zigzag level order traversal as:
[
[3],
[20,9],
[15,7]
]
class Solution:
# @param root, a tree node
# @return a list of lists of integers
#迭代
def zigzagLevelOrder(self, root):
queue = collections.deque([root])
res = []
while queue:
r = []
for _ in range(len(queue)):
q = queue.popleft()
if q:
r.append(q.val)
queue.append(q.left)
queue.append(q.right)
r = r[::-1] if len(res) % 2 else r
if r:
res.append(r)
return res