# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回构造的TreeNode根节点
def reConstructBinaryTree(self, pre, tin):
# write code here
if (not pre) or (not tin) or (len(pre) != len(tin)):
return None
# 去除pre的值
root = pre[0]
rootNode = TreeNode(root)
position = tin.index(root)
tinleft = tin[:position]
tinright = tin[position+1:]
preleft = pre[1:position+1]
preright = pre[position+1:]
leftNode = self.reConstructBinaryTree(preleft, tinleft)
rightNode = self.reConstructBinaryTree(preright, tinright)
rootNode.left = leftNode
rootNode.right = rightNode
return rootNode