package q841 func canVisitAllRooms(rooms [][]int) bool { locked := len(rooms) - 1 opened := make([]bool, len(rooms)) opened[0] = true queue := []int{0} for ; len(queue) > 0; queue = queue[1:] { for _, i := range rooms[queue[0]] { if opened[i] { continue } opened[i] = true locked-- queue = append(queue, i) } } return locked == 0 } var _ = canVisitAllRooms