void dfs(int node, List<List<Integer>> graph, boolean[] seen) {
seen[node] = true;
visit(node);
for (int next : graph.get(node)) {
if (!seen[next]) dfs(next, graph, seen);
}
}
def dfs(node: int, graph: list[list[int]], seen: list[bool]) -> None:
seen[node] = True
visit(node)
for nxt in graph[node]:
if not seen[nxt]:
dfs(nxt, graph, seen)
def dfs(node: Int, graph: Vector[Vector[Int]], seen: Array[Boolean]): Unit =
seen(node) = true
visit(node)
for next <- graph(node) do
if !seen(next) then dfs(next, graph, seen)
void dfs(int node, const std::vector<std::vector<int>>& graph, std::vector<bool>& seen) {
seen[node] = true;
visit(node);
for (int next : graph[node]) {
if (!seen[next]) dfs(next, graph, seen);
}
}