思路:
# -*- 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
root=pRoot
if not root:
return []
level=[root]#当前层结点
result=[]#遍历过结点的值
righttoleft=False#从右到左的标志符
while level:
curvalues=[]#当前层结点的值
nextlevel=[]#下一层结点
for i in level:
curvalues.append(i.val)
if i.left:
nextlevel.append(i.left)
if i.right:
nextlevel.append(i.right)
if righttoleft:#若为真则逆序
curvalues.reverse()
if curvalues:
result.append(curvalues)#当前层结点的值加入result中
level=nextlevel#下一层赋值给当前层
righttoleft=not righttoleft#修改遍历方向
return result