Menu
CoddyTech

Remove Nth Node From End of List

Aynı uzunluktaki 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'dır. Düğümler liste sırasına göre saklanmadığından bağlantıları izleyin.

Listenin sonundan başlayarak sayıldığında n. düğümü kaldırın; son düğüm sondan 1. düğümdür. Kalan düğümlerin değerlerini liste sırasına göre döndürün.

Fonksiyon

removeNthFromEnd(values: integer-array, next: integer-array, n: integer) → integer-array
valuesinteger-array
her düğümün tuttuğu değer
nextinteger-array
Her düğümün bağlantı verdiği düğümün indeksi ya da son düğüm için -1
ninteger
sondan başlayarak sayıldığında, 1 son düğüm olmak üzere hangi düğümün kaldırılacağı
Döndürürinteger-array
kalan değerler liste sırasına göre, tek düğüm kaldırıldığında boş

Kısıtlar

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

Örnekler

Girdi
values = [5, 9, 2, 7, 6]next = [2, 3, 4, -1, 1]n = 2
Çıktı
[5, 2, 6, 7]
Açıklama
0 düğümünden bağlantıları takip etmek 0, 2, 4, 1, 3 düğümlerini ziyaret eder; dolayısıyla liste 5, 2, 6, 9, 7 şeklindedir. Sondan 2. düğüm 1, değeri ise 9’dur ve bu düğüm olmadan liste 5, 2, 6, 7 şeklindedir. values[5-2] = 7 dizi girdisi silinecek düğüm değil, son düğümdür.

lock iconGönderirken +14 gizli test

challenge icon

Ek soru

Düğümü önce uzunluğu saymadan tek geçişte bulup bağlantısını kesebilir misin?

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

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

[5, 2, 6, 7]