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

解答:
void dfs(int **rooms, int *size, int idx, int *visited)
{
int i = 0;
visited[idx] = 1;
for (i = 0; i < size[idx]; i++) {
int key = rooms[idx][i];
if (visited[key] == 0) {
dfs(rooms, size, key, visited);
}
}
}
bool canVisitAllRooms(int** rooms, int roomsSize, int* roomsColSize)
{
#define MAX_SIZE 3000
int i = 0;
int visited[MAX_SIZE] = { 0 };
dfs(rooms, roomsColSize, 0, visited);
for (i = 0; i < MAX_SIZE; i++) {
roomsSize -= visited[i];
}
return (roomsSize == 0) ? true : false;
}