思路:标准图的DFS遍历方法,无需多说
class Solution {
public:
void DFS(int r,vector<vector<int>>& rooms,vector<int>& vis){
for(int i=0;i<rooms[r].size();i++){
if(vis[rooms[r][i]]==0){
vis[rooms[r][i]]=1;
DFS(rooms[r][i],rooms,vis);
}
}
}
bool canVisitAllRooms(vector<vector<int>>& rooms) {
int n=rooms.size();
vector<int> vis(n,0);
vis[0]=1;
DFS(0,rooms,vis);
for(int i=0;i<n;i++)if(vis[i]==0)return false;
return true;
}
};