21. 构造二叉树
find()方法
在Python中,str.find(sub[, start[, end]]) 方法用于查找子字符串 sub 在字符串中首次出现的位置,返回其起始索引。如果未找到,返回 -1
python">class Tree:def __init__(self,val=None,left=None,right=None):self.left = leftself.right = rightself.val = val
def make_tree(pre_order,mid_order):if not pre_order or not mid_order:return Noneidx = mid_order.find(pre_order[0])left = make_tree(pre_order[1:idx+1],mid_order[:idx])right = make_tree(pre_order[idx+1:],mid_order[idx+1:])# head = Tree(val=head,left=left,right=right)return Tree(val=pre_order[0],left=left,right=right)
def behind_order(head):if head is None:return []left = behind_order(head.left)right = behind_order(head.right)val = head.valreturn left + right + [val]
while True:try:pre_order,mid_order = map(str,input().split(' '))# head = make_tree(pre_order,mid_order)# print(behind_order(make_tree(pre_order,mid_order)))print(''.join(behind_order(make_tree(pre_order,mid_order))))except:break