Graph Theory37 sections · 1633 units
Open in Course

LeetCode 841 Keys and Rooms - Implementation

Coding it

Note: LeetCode gives you rooms which is already an adjacency list.

visited = [false] * n

function dfs(u, rooms):
    visited[u] = true
    for each v in rooms[u]:
        if not visited[v]:
            dfs(v, rooms)

function canVisitAllRooms(rooms):
    n = rooms.length
    visited = [false] * n
    dfs(0, rooms)
    for i from 0 to n - 1:
        if not visited[i]:
            return false
    return true

This runs in O(V+E)O(V + E) time and uses O(V)O(V) space.