# 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
def dfs(p, i):
if not p or not i: return None
val = p[0]
idx = i.index(val)
node = TreeNode(val)
node.left = dfs(p[1:idx + 1], i[:idx])
node.right = dfs(p[idx + 1:], i[idx + 1:])
return node
return dfs(pre, vin)