Delete Nodes And Return Forest LeetCode solution in JavaScript
1var delNodes = function (root, to_delete) {2if (!root) return [];34to_delete = new Set(to_delete);5// know how to delete6// while deleting add new nodes to same algo7const ans = [];8const traverse = (r = root, p = null, d = 0) => {9if (!r) return null;10if (to_delete.has(r.val)) {11if (p != null) {12p[d == -1 ? "left" : "right"] = null;13}14traverse(r.left, null, 0);15traverse(r.right, null, 0);16} else {17if (p == null) ans.push(r);18traverse(r.left, r, -1);19traverse(r.right, r, 1);20}21};22traverse();23return ans;24};