题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
# -*- 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 []
? ? ? ? flag = True
? ? ? ? result = []
? ? ? ? p = [pRoot]
? ? ? ? while p:
? ? ? ? ?res = []
? ? ? ? ?node = []
? ? ? ? ?for n in p:
? ? ? ? ? if n.left:
? ? ? ? ? ?node.append(n.left)
? ? ? ? ? if n.right:
? ? ? ? ? ?node.append(n.right)
? ? ? ? ? res.append(n.val)
? ? ? ? ?if flag == False:
? ? ? ? ? result.append(res[::-1])
? ? ? ? ? flag = True
? ? ? ? ?else:
? ? ? ? ? result.append(res)
? ? ? ? ? flag = False
? ? ? ? ?p = node
? ? ? ? return result