Delete Nodes And Return Forest LeetCode solution in JavaScript

1
var delNodes = function (root, to_delete) {
2
if (!root) return [];
3

4
to_delete = new Set(to_delete);
5
// know how to delete
6
// while deleting add new nodes to same algo
7
const ans = [];
8
const traverse = (r = root, p = null, d = 0) => {
9
if (!r) return null;
10
if (to_delete.has(r.val)) {
11
if (p != null) {
12
p[d == -1 ? "left" : "right"] = null;
13
}
14
traverse(r.left, null, 0);
15
traverse(r.right, null, 0);
16
} else {
17
if (p == null) ans.push(r);
18
traverse(r.left, r, -1);
19
traverse(r.right, r, 1);
20
}
21
};
22
traverse();
23
return ans;
24
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0