Menu
CoddyTech

Linked List Cycle

Bağlı liste next dizisinde saklanır: i düğümü next[i] düğümüne bağlanır ve -1 listenin orada bittiği anlamına gelir. Baş düğüm 0'dır. Baş düğümden başlayarak bağlantıları takip et ve daha önce ziyaret ettiğin bir düğüme yeniden ulaşırsan true, listenin sonuna ulaşırsan false döndür. İzleme sırasında hiç ulaşılamayan düğümler, birbirlerine bağlanıp bir döngü oluştursalar bile hesaba katılmaz.

Fonksiyon

hasCycle(next: integer-array) → boolean
nextinteger-array
her düğümün bağlantısı: next[i], i düğümünden sonraki düğümdür veya -1'dir
Döndürürboolean
0 düğümünden başlayan gezinme bir düğümü yeniden ziyaret ederse true, -1'e ulaşırsa false

Kısıtlar

  • 1 ≤ next.length ≤ 104
  • -1 ≤ next[i] ≤ next.length-1
  • Birkaç düğüm aynı düğüme bağlanabilir ve bazı düğümlere baş düğümden ulaşılamayabilir.

Örnekler

Girdi
next = [1, 2, 3, 1]
Çıktı
true
Açıklama
Yürüyüş 0, 1, 2, 3 şeklinde ilerler ve sonra 1'e geri döner. 1 düğümü iki kez ziyaret edilir, bu nedenle listede 1, 2 ve 3 düğümlerinden geçen bir döngü vardır.

lock iconGönderirken +16 gizli test

challenge icon

Ek soru

Döngünün başladığı düğümü de O(1) ek bellek kullanarak bulabilir misin?

Kodu sıfırla
def hasCycle(next):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

next = [1, 2, 3, 1]

Beklenen

true