题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
时间限制:1秒;空间限制:32768K
解题思路
# -*- 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 []
count = 0 #用来判断每层的打印方向
nodeStack = [pRoot] #记录当前层的节点
result = [] #记录结果val,二维
while nodeStack:
new = [] #记录节点中间变量
val = [] #记录val中间变量
for i in nodeStack:
val.append(i.val)
if i.left!=None:
new.append(i.left)
if i.right!=None:
new.append(i.right)
nodeStack = new #更新本层的节点
# 按层数奇偶打印
if count%2==0:
result.append(val)
else:
result.append(val[::-1])
count += 1
return result