题意
给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)。
思路
层序遍历
:下标为奇数的数组逆序。
二叉树的遍历(前序遍历,中序遍历,后序遍历,层序遍历)
代码
class Solution:
def Print(self , pRoot: TreeNode) -> List[List[int]]:
# write code here
if not pRoot: return []
ans, queue = [],deque()
queue.append(pRoot)
while queue:
s = []
for _ in range(len(queue)):
n = queue.popleft()
s.append(n.val)
if n.left: queue.append(n.left)
if n.right: queue.append(n.right)
ans.append(s)
for i in range(len(ans)):
if i%2:
ans[i] = ans[i][::-1]
return ans