# 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 classSolution: defdecorateRecord(self, root: Optional[TreeNode]) -> List[List[int]]: ifnot root: return [] queue = collections.deque([root]) flag = True ans = [] while queue: temp = [] for _ inrange(len(queue)): if flag: # 从左到右 node = queue.popleft() temp.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) else: # 从右到左 node = queue.pop() temp.append(node.val) # 注意这里的添加顺序 if node.right: queue.appendleft(node.right) if node.left: queue.appendleft(node.left) flag = not flag ans.append(temp)