题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
思路
代码
#class TreeNode:
# def __init__(self,x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def buildTree(self,preorder:List[int],inorder:List[int])->TreeNode:
if len(preorder) == 0:
return None
node = TreeNode(preorder[0])
index = inorder.index(node.val)
left_pre = preorder[1:index+1]
left_in = inorder[:index]
right_pre = preorder[index+1:]
right_in = inorder[index+1:]
node.left = self.buildTree(left_pre,left_in)
node.right = self.buildTree(right_pre,right_in)
return node