import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts";
export default function buildTree( inorder: number[], postorder: number[],): TreeNode | null { if (inorder.length === 0) return null; let post_idx = postorder.length - 1; const idx_map = new Map<number, number>(); function helper(in_left: number, in_right: number) { if (in_left > in_right) { return null; }
const root_val = postorder[post_idx]; const root = new TreeNode(root_val);
const index = idx_map.get(root_val) ?? 0;
post_idx--; root.right = helper(index + 1, in_right); root.left = helper(in_left, index - 1); return root; }
inorder.forEach((val, idx) => { idx_map.set(val, idx); }); return helper(0, inorder.length - 1);}