之字形打印二叉树。奇数行从左到右,偶数行从右到左。

  • python数据结构:collections.deque
    • 方法:deque.append()在队列尾部插入,deque.appendleft()在队列头部插入

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
deque = collections.deque([root])
res = []
while deque:
temp = collections.deque()
for i in range(0, len(deque)):
node = deque.popleft()
if len(res)%2 == 0:
temp.append(node.val)
else:
temp.appendleft(node.val)
if node.left:
deque.append(node.left)
if node.right:
deque.append(node.right)
res.append(list(temp))
return res