# Construct [[binary-tree|Binary Tree]] from [[preorder|Preorder]] and [[inorder|Inorder]] Traversal https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ ```python if not preorder: return None root = TreeNode(val := preorder[0]) idx = inorder.index(val) root.left = self.buildTree(preorder[1:idx + 1], inorder[:idx]) root.right = self.buildTree(preorder[idx + 1:], inorder[idx + 1:]) return root ``` The values must be **unique**. Otherwise knowing the `root` in `preorder` is not sufficient to find it in `inorder`.