题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
# -*- 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 []
ret = []
curr_stack = [pRoot]
while curr_stack:
next_stack = []
curr_vals = []
for node in curr_stack:
if node.left:
next_stack.append(node.left)
if node.right:
next_stack.append(node.right)
curr_vals.append(node.val)
curr_stack = next_stack
ret.append(curr_vals)
result = []
for i,v in enumerate(ret):
if i%2==0:
result.append(v)
else:
result.append(v[::-1])
return result