My codePermalink

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from typing import List
from collections import deque
class Solution:
    def canVisitAllRooms(rooms: List[List[int]]) -> bool:
        visited = {0: True}
        q = deque()
        q.append(rooms[0])

        while q:
            for _ in range(len(q)):
                keys = list(q.popleft())
                for k in keys:
                    if k not in visited:
                        q.append(rooms[k])
                        visited[k] = True
        
        for i in range(len(rooms)):
            if i not in visited:
                return False
            
            return True