从上到下打印二叉树 III
从上到下打印二叉树 III
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
思路
总体和层次遍历一致,只是多了个判断而已
利用 双端队列 实现,Python——collections中的deque,C++——STL中的deque
- 偶数层:需要从左到右打印
- 奇数层:需要从右到左打印
- 辨别偶奇数层,可添加一个标志flag来辨别。flag=True为偶数,false为奇数,奇数时将该层反转即可。
Python
def levelOrder(self, root):
q = collections.deque()
res = []
if root:
q.append(root)
flag = True #奇偶数判断
while len(q):
size = len(q)
temp