deno.land / x / masx200_leetcode_test@10.6.5 / construct-binary-tree-from-preorder-and-inorder-traversal / index.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { TreeNode } from "../mod.ts";
function buildTree(preorder: number[], inorder: number[]): TreeNode | null { const map = new Map<number, number>(); for (let i = 0; i < inorder.length; i++) { map.set(inorder[i], i); } function helper( pStart: number, pEnd: number, iStart: number, iEnd: number, ): TreeNode | null { if (pStart > pEnd) { return null; } const rootVal = preorder[pStart]; const root = new TreeNode(rootVal); const mid = map.get(rootVal) ?? 0; const leftnum = mid - iStart; root.left = helper(pStart + 1, pStart + leftnum, iStart, mid - 1); root.right = helper(pStart + leftnum + 1, pEnd, mid + 1, iEnd); return root; } return helper(0, preorder.length - 1, 0, inorder.length - 1);}export default buildTree;
masx200_leetcode_test

Version Info

Tagged at
a year ago