Find Eventual Safe States LeetCode solution in JavaScript

1
/**
2
* @param {number[][]} graph
3
* @return {number[]}
4
*/
5
var eventualSafeNodes = function (graph) {
6
const n = graph.length;
7
const result = new Array(n).fill(0);
8

9
const dfs = (node) => {
10
if (result[node] !== 0) return result[node] === 2;
11
result[node] = 1;
12
for (let neighbor of graph[node]) {
13
if (result[neighbor] === 1 || !dfs(neighbor)) return false;
14
}
15
result[node] = 2;
16
return true;
17
};
18
const safeNodes = [];
19
for (let node = 0; node < n; node++) {
20
if (dfs(node)) safeNodes.push(node);
21
}
22
return safeNodes;
23
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0