Menu
CoddyTech

Reverse Linked List

Du erhältst eine einfach verkettete Liste, die im Array next gespeichert ist: Knoten i verweist auf Knoten next[i], -1 beendet die Liste, und der Kopf ist Knoten 0. Die Knoten sind nicht in Listenreihenfolge gespeichert, folge also den Verweisen.

Kehre die Liste um, indem du jeden Verweis umdrehst, sodass der bisherige letzte Knoten zum Kopf wird und Knoten 0 zum letzten Knoten wird, der auf -1 verweist. Gib das aktualisierte next-Array zurück, das dieselbe Länge wie die Eingabe hat.

Funktion

reverseList(next: integer-array) → integer-array
nextinteger-array
der Index des Knotens, auf den jeder Knoten verweist, oder -1 für den letzten Knoten
Gibt zurückinteger-array
das nächste Array der umgekehrten Liste

Einschränkungen

  • 1 ≤ next.length ≤ 5000
  • Jedes next[i] ist -1 oder ein Knotenindex von 0 bis next.length-1.
  • Ausgehend vom Knoten 0 besucht die Liste jeden Knoten genau einmal und erreicht dann -1. Es gibt keinen Zyklus.

Beispiele

Eingabe
next = [1, 2, 3, -1]
Ausgabe
[-1, 0, 1, 2]
Erklärung
Die Liste lautet 0 → 1 → 2 → 3. Umgekehrt ist sie 3 → 2 → 1 → 0, also verweist Knoten 3 auf 2, Knoten 2 auf 1, Knoten 1 auf 0 und Knoten 0 auf -1.

lock icon+11 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du nur den Teil der Liste zwischen Position left und Position right umkehren und die Knoten davor und danach an ihrer Stelle belassen?

Code zurücksetzen
def reverseList(next):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

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

Erwartet

[-1, 0, 1, 2]