Faaez Razeen

Construct Binary Tree From Preorder and Inorder Traversal

  • 2 min read
  • LC-Medium
  • Binary Tree

3 years ago

Solution

TimeSpaceExplanation
O()O()
def buildTree(self, preorder: List[int], inorder: List[int]) -> Optional[TreeNode]: if not preorder or not inorder: return None root = TreeNode(preorder[0]) mid = inorder.index(preorder[0]) root.left = self.buildTree(preorder[1:mid + 1], inorder[:mid + 1]) root.right = self.buildTree(preorder[mid + 1:], inorder[mid + 1:]) return root