Menu
CoddyTech

Reverse Linked List

MudahLinked listpython iconjava iconcpp iconc iconjs icon+10

Kamu mendapatkan singly linked list yang disimpan dalam array next: node i terhubung ke node next[i], -1 menandai akhir list, dan head adalah node 0. Node-node tersebut tidak disimpan sesuai urutan list, jadi ikuti tautannya.

Balik list dengan membalik setiap tautan, sehingga node terakhir yang lama menjadi head dan node 0 menjadi node terakhir yang terhubung ke -1. Kembalikan array next yang telah diperbarui, dengan panjang yang sama seperti input.

Fungsi

reverseList(next: integer-array) → integer-array
nextinteger-array
indeks simpul yang ditautkan oleh setiap simpul, atau -1 untuk simpul terakhir
Mengembalikaninteger-array
array berikutnya dari list yang dibalik

Batasan

  • 1 ≤ next.length ≤ 5000
  • Setiap next[i] adalah -1 atau indeks node dari 0 hingga next.length-1.
  • Mulai dari node 0, list mengunjungi setiap node tepat satu kali lalu mencapai -1. Tidak ada siklus.

Contoh

Input
next = [1, 2, 3, -1]
Output
[-1, 0, 1, 2]
Penjelasan
Jika dibalik, 0 → 1 → 2 → 3 menjadi 3 → 2 → 1 → 0: setiap node terhubung ke node sebelumnya, dan node 0 terhubung ke -1.
challenge icon

Pertanyaan lanjutan

Bisakah kamu membalik hanya bagian list di antara posisi left dan posisi right, serta membiarkan node sebelum dan sesudahnya tetap di tempatnya?

Reset kode
def reverseList(next):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

[-1, 0, 1, 2]