Construct Binary Tree from Preorder and Inorder Traversal
def buildTree(self, preorder, inorder):
"""
:type preorder: List[int]
:type inorder: List[int]
:rtype: TreeNode
"""
if preorder == None or inorder == None or len(preorder) == 0 or len(inorder) == 0:
return None
root = TreeNode(preorder[0])
i = inorder.index(preorder[0])
root.left = self.buildTree(preorder[1 : i + 1], inorder[0:i])
root.right = self.buildTree(preorder[i + 1: len(preorder)], inorder[i + 1 : len(inorder)])
return rootLast updated