from collections import deque
class Node:
def __init__(self,data):#创建节点
self.data=data
self.lchild=None
self.rchild=None
def creat(Pre,InOrder):#Pre为题目给的前序结果,InOrder为中序结果
if Pre==[] or InOrder==[]:
return
root=Node(Pre[0])
i=InOrder.index(Pre[0])
root.lchild = creat(Pre[i + 1:], InOrder[i + 1:])
root.rchild=creat(Pre[1:i+1],InOrder[:i])
return root
def level(root):
queue=deque()
queue.append(root)
while len(queue)>0:
node=queue.popleft()
ans.append(node.data)
if node.lchild!=None:
queue.append(node.lchild)
if node.rchild!=None:
queue.append(node.rchild)
global ans
ans=[]
n=int(input())
mid=input().split()
p=input().split()
r=creat(p,mid)
level(r)
print(*ans)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)