參考資訊:
https://algo.monster/liteproblems/841
https://www.cnblogs.com/grandyang/p/10415773.html
題目:

解答:
class Solution {
public:
bool canVisitAllRooms(vector<vector<int>>& rooms) {
vector<int> visited(rooms.size(), 0);
dfs(rooms, 0, visited);
int cnt = 0;
for (int i : visited) {
cnt += i;
}
return cnt == rooms.size();
}
void dfs(vector<vector<int>>& rooms, int idx, vector<int>& visited) {
visited[idx] = 1;
for (int key : rooms[idx]) {
if (visited[key] == 0) {
dfs(rooms, key, visited);
}
}
}
};