Menu
CoddyTech

Palindrome Linked 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 listenin sonunu belirtir ve baş düğüm 0'dır. Düğümler liste sırasına göre saklanmadığından bağlantıları takip edin.

Değerler baştan sona ve sondan başa okunduğunda aynıysa true, aksi takdirde false döndürün.

Fonksiyon

isPalindrome(next: integer-array, values: integer-array) → boolean
nextinteger-array
her düğümün bağlantı verdiği düğümün indeksi veya son düğüm için -1
valuesinteger-array
her düğümün tuttuğu değer
Döndürürboolean
liste her iki yönde de aynı okunuyorsa true

Kısıtlar

  • 1 ≤ L ≤ 5000; burada L, next ve values uzunluğudur.
  • -100 ≤ values[i] ≤ 100
  • Her next[i], -1 ya da 0 ile L-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'e ulaşır. Döngü yoktur.

Örnekler

Girdi
next = [4, 3, -1, 2, 1]values = [3, 4, 3, 1, 1]
Çıktı
true
Açıklama
Bağlantılar 0, 4, 1, 3, 2 düğümlerini ziyaret eder; bu nedenle liste 3, 1, 4, 1, 3 şeklindedir. İki 3 eşleşir, iki 1 eşleşir ve ortadaki 4 için kontrol edilecek bir eş yoktur.
challenge icon

Ek soru

Bunu O(L) zamanda ve O(1) ek bellekle yapabilir misin?

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

Test #1

Test #2

Test #3

Argümanlar

next = [4, 3, -1, 2, 1]
values = [3, 4, 3, 1, 1]

Beklenen Çıktı

true