1
var smallestMissingValueSubtree = function (parents, nums) {
2
let n = parents.length,
3
next = [...Array(n)].map((d) => []),
4
used = {};
5
for (let i = 1; i < n; i++) next[parents[i]].push(i);
6
let dfs = (node) => {
7
if (used[nums[node]]) return;
8
used[nums[node]] = true;
9
for (let child of next[node]) dfs(child);
10
};
11
let cur = nums.indexOf(1),
12
leftAt = 1,
13
res = [...Array(n)].map((d) => 1);
14
while (cur !== -1) {
15
dfs(cur);
16
while (used[leftAt]) leftAt++;
17
res[cur] = leftAt;
18
cur = parents[cur];
19
}
20
return res;
21
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0