# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pre int整型一维数组
# @param vin int整型一维数组
# @return TreeNode类
#
class Solution:
def reConstructBinaryTree(self , pre: List[int], vin: List[int]) -> TreeNode:
# write code here
if len(pre)==0:
return
root=pre[0]
rootnode=TreeNode(root)
index=vin.index(root)
left_pre=pre[1:index+1]
right_pre=pre[index+1:]
left_vin=vin[:index]
right_vin=vin[index+1:]
nodeL=self.reConstructBinaryTree(left_pre, left_vin)
rootnode.left=nodeL
nodeR=self.reConstructBinaryTree(right_pre, right_vin)
rootnode.right=nodeR
return rootnode