Menu
CoddyTech

Middle of the Linked List

Aynı uzunlukta iki dizide saklanan tek yönlü bağlı bir liste veriliyor. i düğümü values[i] değerini tutar ve next[i] düğümüne bağlanır; -1 listeyi sonlandırır ve baş düğüm 0 numaralı düğümdür. Düğümler liste sırasına göre saklanmadığından bağlantıları izleyin.

Ortadaki düğümün değerini döndürün. Listede çift sayıda düğüm varsa iki orta düğüm bulunur; ikincisinin değerini döndürün.

Fonksiyon

middleNode(values: integer-array, next: integer-array) → integer
valuesinteger-array
her düğümde tutulan değer
nextinteger-array
her düğümün bağlantı verdiği düğümün indeksi veya son düğüm için -1
Döndürürinteger
orta düğümün değeri; uzunluk çift olduğunda ikinci orta düğümün değeri

Kısıtlar

  • 1 ≤ n ≤ 5000; burada n, values ve next dizilerinin uzunluğudur.
  • -104 ≤ values[i] ≤ 104
  • Her bir next[i], -1 ya da 0 ile n-1 arasında bir düğüm indeksidir.
  • 0 düğümünden başlayarak liste her düğümü tam olarak bir kez ziyaret eder ve ardından -1 değerine ulaşır. Döngü yoktur.

Örnekler

Girdi
values = [4, 9, 2, 7, 5]next = [3, -1, 1, 4, 2]
Çıktı
5
Açıklama
0 düğümünden bağlantıları takip etmek 0, 3, 4, 2, 1 düğümlerini verir; dolayısıyla liste 4, 7, 5, 2, 9 şeklindedir. Beş düğümün üçüncüsü, değeri 5 olan 4 düğümüdür. Dizinin kendi orta girdisi olan values[2] = 2 ise farklı bir düğümdür.

lock iconGönderirken +13 gizli test

challenge icon

Ek soru

Liste boyunca tek geçişte, listenin üçte biri kadar aşağıdaki düğümü döndürebilir misin? Her işaretçi ne kadar hızlı ilerlerdi ve nerede dururdun?

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

Durum 1

Durum 2

Durum 3

Girdi

values = [4, 9, 2, 7, 5]
next = [3, -1, 1, 4, 2]

Beklenen

5