Menu
CoddyTech

Reverse Linked List

Otrzymujesz listę jednokierunkową przechowywaną w tablicy next: węzeł i wskazuje na węzeł next[i], -1 oznacza koniec listy, a głową jest węzeł 0. Węzły nie są przechowywane w kolejności występowania na liście, więc podążaj za odnośnikami.

Odwróć listę, odwracając każdy odnośnik, tak aby dawny ostatni węzeł stał się głową, a węzeł 0 stał się ostatnim węzłem i wskazywał na -1. Zwróć zaktualizowaną tablicę next, która ma taką samą długość jak dane wejściowe.

Funkcja

reverseList(next: integer-array) → integer-array
nextinteger-array
indeks węzła, do którego prowadzi każdy węzeł, lub -1 dla ostatniego węzła
Zwracainteger-array
następna tablica odwróconej listy

Ograniczenia

  • 1 ≤ next.length ≤ 5000
  • Każdy element next[i] ma wartość -1 lub indeks węzła od 0 do next.length-1.
  • Rozpoczynając od węzła 0, lista odwiedza każdy węzeł dokładnie raz, a następnie dociera do -1. Nie ma cyklu.

Przykłady

Wejście
next = [1, 2, 3, -1]
Wyjście
[-1, 0, 1, 2]
Wyjaśnienie
Lista to 0 → 1 → 2 → 3. Po odwróceniu jest to 3 → 2 → 1 → 0, więc węzeł 3 łączy się z 2, węzeł 2 z 1, węzeł 1 z 0, a węzeł 0 z -1.

lock icon+11 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy możesz odwrócić tylko część listy między pozycją left a pozycją right i pozostawić wcześniejsze oraz późniejsze węzły na swoich miejscach?

Zresetuj kod
def reverseList(next):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

[-1, 0, 1, 2]