Kth Ancestor of a Tree Node LeetCode solution in JavaScript

1
/**
2
* @param {number} n
3
* @param {number[]} parent
4
*/
5

6
let par;
7
var TreeAncestor = function (n, parent) {
8
let p = new Array(n);
9
for (let i = 0; i < n; i++) {
10
p[i] = new Array(20);
11
}
12

13
for (let i = 0; i < n; i++) {
14
p[i][0] = parent[i];
15
}
16

17
for (let j = 1; j < 20; j++) {
18
for (let i = 0; i < n; i++) {
19
if (p[i][j - 1] == -1) {
20
p[i][j] = -1;
21
} else {
22
p[i][j] = p[p[i][j - 1]][j - 1];
23
}
24
}
25
}
26
par = p;
27
};
28
/**
29
* @param {number} node
30
* @param {number} k
31
* @return {number}
32
*/
33
TreeAncestor.prototype.getKthAncestor = function (node, k) {
34
for (let i = 0; i < 20; i++) {
35
if ((k >> i) & 1) {
36
node = par[node][i];
37
if (node == -1) {
38
return -1;
39
}
40
}
41
}
42
return node;
43
};
44

45
/**
46
* Your TreeAncestor object will be instantiated and called as such:
47
* var obj = new TreeAncestor(n, parent)
48
* var param_1 = obj.getKthAncestor(node,k)
49
*/

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0