题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
代码实现
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def Print(self, pRoot):
# write code here
if not pRoot:
return []
res=[]
queue=[pRoot]
while queue:
row=[]
for i in queue:
row.append(i.val)
if len(res)%2==0:
res.append(row)
else:
res.append(row[::-1])#反转列表
for i in range(len(queue)):
t=queue.pop(0)
if t.left:
queue.append(t.left)
if t.right:
queue.append(t.right)
return res