Reconstruct

105. Construct Binary Tree from Preorder and Inorder Traversal

class Solution(object):
    def buildTree(self, preorder, inorder):
        if not preorder or not inorder:
            return None

        root = TreeNode(preorder.pop(0))
        idx = inorder.index(root.val)
        root.left = self.buildTree(preorder, inorder[:idx])
        root.right= self.buildTree(preorder, inorder[idx+1:])
        return root

106. Construct Binary Tree from Inorder and Postorder Traversal

class Solution(object):
    def buildTree(self, inorder, postorder):
        if not inorder or not postorder:
            return None

        root = TreeNode(postorder.pop())
        inorderindex = inorder.index(root.val)
        root.right= self.buildTree(inorder[inorderindex+1:], postorder)
        root.left = self.buildTree(inorder[:inorderindex], postorder)

        return root

results matching ""

    No results matching ""