题目描述
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
思路
详见链接
代码
class Solution:def levelOrder(self,root:TreeNode)->List[List[int]]:if not root:return []res, queue = [],collections.deque()queue.append(root)while queue:tmp = []for _ in range(len(queue)):node = queue.popleft()tmp.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)res.append(tmp[::-1] if len(res) % 2 == 0 else tmp)return res