天天看點

LeetCode——反轉連結清單(雙指針)

題目描述

LeetCode——反轉連結清單(雙指針)

解題思路

  1. 采用一個指針指向目前節點,cur節點的初始值為head.
  2. 采用另一個指針指向目前節點的前一個節點(pre),該節點的初始值為null.
  3. 每當我們修改目前指針的指向的時候,一定要儲存目前指針的後一個節點.

解題代碼

var reverseList = function(head) {
    let cur = head;
    let pre = null;
    while (cur) {
        // 首先儲存目前節點的下一個節點
        let temp = cur.next;
        cur.next = pre;
        pre = cur;
        cur = temp;
    }
    return pre;
};
複制代碼      

題目反思

  • 學會使用雙指針來解決反轉連結清單問題。
  • 本題尤其值的我們反複練習,因為本題在修改指針的指向的時候,需要儲存目前指針的下一個節點,這是解決反轉連結清單的一個很好的思路。

繼續閱讀