Menu
CoddyTech

Reverse Linked List

נתונה לך רשימה מקושרת חד־כיוונית המאוחסנת במערך next: צומת i מקושר לצומת next[i], -1 מסיים את הרשימה, והראש הוא צומת 0. הצמתים אינם מאוחסנים לפי סדר הרשימה, לכן יש לעקוב אחר הקישורים.

הפוך את הרשימה על ידי הפיכת הכיוון של כל קישור, כך שהצומת שהיה אחרון יהפוך לראש והצומת 0 יהפוך לצומת האחרון, המקושר אל -1. החזר את מערך next המעודכן, שאורכו זהה לאורך מערך הקלט.

פונקציה

reverseList(next: integer-array) → integer-array
nextinteger-array
האינדקס של הצומת שאליו כל צומת מקושר, או ‎-1 עבור הצומת האחרון
מחזירהinteger-array
המערך הבא של הרשימה ההפוכה

אילוצים

  • 1 ≤ next.length ≤ 5000
  • כל next[i] הוא -1 או אינדקס של צומת מ-0 עד next.length-1.
  • החל מהצומת 0, הרשימה מבקרת בכל צומת בדיוק פעם אחת ואז מגיעה אל -1. אין מעגל.

דוגמאות

קלט
next = [1, 2, 3, -1]
פלט
[-1, 0, 1, 2]
הסבר
הרשימה היא 0 → 1 → 2 → 3. לאחר היפוכה היא 3 → 2 → 1 → 0, לכן הצומת 3 מקושר ל־2, הצומת 2 ל־1, הצומת 1 ל־0, והצומת 0 ל־-1.

lock icon+11 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

האם תוכל להפוך רק את החלק ברשימה שבין המיקום left למיקום right, ולהשאיר את הצמתים שלפניו ואחריו במקומם?

איפוס הקוד
def reverseList(next):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

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

צפוי

[-1, 0, 1, 2]