题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/
难度:中等
描述:
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
题解
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution:def levelOrder(self, root: TreeNode) -> List[List[int]]:ret = []q = deque()if root is not None:q.append(root)level = 1while q:size = len(q)temp_node = []while size > 0:cur = q.popleft()temp_node.append(cur.val)if cur.left:q.append(cur.left)if cur.right:q.append(cur.right)size -= 1if level % 2 == 1:ret.append(temp_node)else:ret.append(temp_node[::-1])level += 1return ret
