diff --git a/trees/bt_construct_inorder_preorder.py b/trees/bt_construct_inorder_preorder.py index 2f1518d..6aca6cf 100644 --- a/trees/bt_construct_inorder_preorder.py +++ b/trees/bt_construct_inorder_preorder.py @@ -2,24 +2,24 @@ # -*- coding: utf-8 -*- # author: bt3gl -def build_tree(preorder: list[int], inorder: list[int]) -> Optional[Node]: + +def build_tree(preorder, inorder) -> Optional[Node]: - def helper(i_left, i_right, index_map): + def helper(left, right, index_map): - if i_left > i_right: + if left > right: return None - root = TreeNode(preorder.pop(0)) + root = Node(preorder.pop(0)) index_here = index_map[root.val] # this order change from postorder - root.left = helper(i_left, index_here - 1, index_map) - root.right = helper(index_here + 1, i_right, index_map) + root.left = helper(left, index_here - 1, index_map) + root.right = helper(index_here + 1, right, index_map) return root - - index_map = {value: index for index, value in enumerate(inorder)} + index_map = {value: i for i, value in enumerate(inorder)} return helper(0, len(inorder) - 1, index_map)