103. Binary Tree Zigzag Level Order Traversal # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]: ## 话说 最简单的层次遍历完... ## 然后奇偶 翻转 ## 但是...这么做 肯定不是这题本意 ans = [] if not root: return ans q = collections.deque() q.append(root) depth = 0 while q: ls = len(q) level = [] depth += 1 for _ in range(ls): node = q.popleft() level.append(node.val) if node.left: q.append(node.left) if node.right: q.append(node.right) if level: if depth & 1: ans.append(level) else: ans.append(level[::-1]) return ans