參考資訊:
https://www.cnblogs.com/grandyang/p/10415773.html
題目:
解答:
#define MAX_LEN 3000 void travel(int **rooms, int *size, int cur, int *q) { int c0 = 0; q[cur] = 1; for (c0 = 0; c0 < size[cur]; c0++) { if (q[rooms[cur][c0]] == 0) { travel(rooms, size, rooms[cur][c0], q); } } } bool canVisitAllRooms(int** rooms, int roomsSize, int* roomsColSize) { int r = 0; int c0 = 0; int q[MAX_LEN] = { 0 }; travel(rooms, roomsColSize, 0, q); for (c0 = 0; c0 < MAX_LEN; c0++) { if (q[c0] > 0) { r += 1; } } return (r == roomsSize) ? true : false; }