题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

思路:这道题要用到递归,每次先找到根节点,如何再用递归方法分别构造左右子树。
class Solution:
def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
if preorder==[]:return None
if len(preorder)==1:return TreeNode(preorder[0])
else:
flag=TreeNode(preorder[0])
flag.left=self.buildTree(preorder[1:inorder.index(preorder[0])+1],inorder[:inorder.index(preorder[0])])
flag.right=self.buildTree(preorder[inorder.index(preorder[0])+1:],inorder[inorder.index(preorder[0])+1:])
return flag