1
class Solution {
2
int count = 0;
3
ArrayList<ArrayList<Integer>> adj = new ArrayList<>();
4

5
public int reachableNodes(int n, int[][] edges, int[] restricted) {
6
boolean[] vis = new boolean[n];
7
for (int i : restricted) {
8
vis[i] = true;
9
}
10
for (int i = 0; i < n; i++) {
11
adj.add(new ArrayList<>());
12
}
13
for (int[] ii : edges) {
14
adj.get(ii[0]).add(ii[1]);
15
adj.get(ii[1]).add(ii[0]);
16
}
17
dfs(0, vis);
18
return count;
19
}
20

21
private void dfs(int node, boolean[] vis) {
22
vis[node] = true;
23
count++;
24
for (int it : adj.get(node)) {
25
if (vis[it] == false) {
26
dfs(it, vis);
27
}
28
}
29
}
30
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0