#definepbpush_backclassSolution{public:
vector<int>eventualSafeNodes(vector<vector<int>>& graph){int n = graph.size();
vector<vector<int>>g(n);
vector<int>d(n);//出度
vector<int> res;for(int i =0; i < n; i ++)for(auto u : graph[i]){
d[i]++;
g[u].pb(i);}//拓扑排序
queue<int> q;for(int i =0; i < n; i ++)if(d[i]==0) q.push(i);while(q.size()){auto t = q.front();
q.pop();for(auto u : g[t]){if(-- d[u]==0) q.push(u);}}for(int i =0; i < n; i ++)if(! d[i]) res.pb(i);//最终出度为0的点即为所求return res;}};