ジグザグプリント機能バイナリツリー、左から右から左に2行目の印刷、印刷順序の正しい順序、左から3番目の行に印刷の正しい順序、他の行に、すなわち、最初の行に係る実装ように。
class TreeNode:
def __init__(self,x):
self.val = x
self.left = None
self.right = None
class Solution:
def Print(self, pRoot):
if pRoot==None:
return []
stack1=[pRoot]
stack2=[]
ret = []
while stack1 or stack2:
if stack1:
tmpRet=[]
while stack1:
tmpNode=stack1.pop()
tmpRet.append(tmpNode.val)
if tmpNode.left:
stack2.append(tmpNode.left)
if tmpNode.right:
stack2.append(tmpNode.right)
ret.append(tmpRet)
if stack2:
tmpRet=[]
while stack2:
tmpNode = stack2.pop()
tmpRet.append(tmpNode)
if tmpNode.right:
stack1.append(tmpNode.right)
if tmpNode.left:
stack1.append(tmpNode.left)
ret.append(tmpRet.val)
return ret