描述
给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)
例如:
给定的二叉树是{1,2,3,#,#,4,5}
该二叉树之字形层序遍历的结果是
[
[1],
[3,2],
[4,5]
]
示例1
输入:
{1,2,3,#,#,4,5}
复制返回值:
[[1],[3,2],[4,5]]
复制
示例2
输入:
{8,6,10,5,7,9,11}
复制返回值:
[[8],[10,6],[5,7,9,11]]
复制
示例3
输入:
{1,2,3,4,5}
复制返回值:
[[1],[3,2],[4,5]]
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def Print(self, pRoot):
stack, res, floor = [pRoot], [], []
flag, num = 0, 1
if pRoot == None:
return None
while(len(stack) != 0):
cur = stack.pop(0)
num = num - 1
floor.append(cur.val)
if cur.left:
stack.append(cur.left)
if cur.right:
stack.append(cur.right)
if num == 0:
num = len(stack)
if flag % 2 == 1:
floor.reverse()
flag = 1 - flag
res.append(floor)
floor = []
return res
# write code here
层序遍历