🤖המדריך להייטיקיסט המתחיל
בינוניLeetCode #92

Reverse Linked List II

עשויה להישאל ב:AmazonMicrosoft

תיאור השאלה

Given the head of a singly linked list and two integers left and right where left <= right, reverse the nodes of the list from position left to position right, and return the reversed list. Positions are 1-indexed.

איך פותרים?

מוסיפים צומת דמה לפני הראש, מתקדמים עד הצומת שלפני left, ואז בכל צעד לוקחים את הצומת שאחרי הנוכחי ומעבירים אותו לתחילת הקטע. אחרי right-left צעדים הקטע הפוך. מעבר אחד, O(n) זמן ו־O(1) זיכרון.

פתרון קוד

JavaScript
Python
function reverseBetween(head, left, right) {
  const dummy = { val: 0, next: head };
  let prev = dummy;
  for (let i = 1; i < left; i++) prev = prev.next;
  const curr = prev.next;
  for (let i = 0; i < right - left; i++) {
    const moved = curr.next;
    curr.next = moved.next;
    moved.next = prev.next;
    prev.next = moved;
  }
  return dummy.next;
}
Book Cover

לעבור את ראיון העבודה הבא שלך בהצלחה

קורס דיגיטלי מקיף עם +25 שיעורים מעשיים, כשעתיים של וידאו, וליווי של מראיין בכיר.

התחל עכשיו ב-149 ₪ בלבד! 🚀