面试题32 - III. 从上到下打印二叉树 III
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
res = [] #输出打印的结果
queue = [root]
flag = 1 # 1不需要反转,-1需要反转
while queue:
tem = []
for i in range(len(queue)): #表示循环多少次
node = queue.pop(0)
tem.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(tem[::flag])
flag *= -1
return res

本文介绍了一种特殊的二叉树遍历方法——之字形打印。通过使用队列和标志位,实现了按层级且交替左右的顺序打印二叉树节点。此算法适用于需要特殊顺序展示二叉树结构的场景。
881

被折叠的 条评论
为什么被折叠?



