"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left, self.right = None, None
"""
class Solution:
"""
@param inorder: A list of integers that inorder traversal of a tree
@param preorder: A list of integers that preorder traversal of a tree
@return: Root of a tree
"""
def buildTree(self, preorder, inorder):
# write your code here
if len(inorder) is 0 and len(preorder) is 0:
return None
if len(inorder) is 1:
return TreeNode(inorder[0])
root = TreeNode(preorder[0])
index = inorder.index(root.val)
inl = inorder[:index]
inr = inorder[index+1:]
prel = []
prer = []
for i in range(len(preorder)):
if preorder[i] in inl:
prel.append(preorder[i])
elif preorder[i] in inr:
prer.append(preorder[i])
root.left = self.buildTree(prel, inl)
root.right = self.buildTree(prer, inr)
return root
Python, LintCode, 73. 前序遍历和中序遍历树构造二叉树
最新推荐文章于 2020-04-30 22:16:40 发布