1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Solution { public boolean canVisitAllRooms(List<List<Integer>> rooms) { int roomCount = rooms.size(); boolean[] visited = new boolean[roomCount];
Queue<Integer> queue = new LinkedList<>(); for (int room : rooms.get(0)) { queue.offer(room); } visited[0] = true; roomCount--;
while (!queue.isEmpty()) { int room = queue.poll(); if (visited[room]) { continue; } visited[room] = true; roomCount--;
for (int nextRoom : rooms.get(room)) { queue.offer(nextRoom); } }
return roomCount == 0; } }
|