Nodes with in-degree 0
Time O(V + E) Space O(V)Mark every edge's target. The unmarked nodes must be in the set, and they are enough because in a DAG every node traces back to a source.
import java.util.*;
class Solution {
public List<Integer> findSmallestSetOfVertices(int n, List<List<Integer>> edges) {
boolean[] hasIncoming = new boolean[n];
for (List<Integer> e : edges) hasIncoming[e.get(1)] = true;
List<Integer> out = new ArrayList<>();
for (int v = 0; v < n; v++) if (!hasIncoming[v]) out.add(v);
return out;
}
}Verdict: No traversal needed.