天天看點

HOT100——删除連結清單的倒數第N個節點(JS實作)

題目描述

HOT100——删除連結清單的倒數第N個節點(JS實作)

解題思路

  • 本題主要思路是使用哈希表,具體思路如下:
  1. 使用哈希表存儲每一個節點,鍵為第幾個元素,值為目前節點指針。
  2. 找到倒數第幾個節點的鍵。
  3. 修改目前鍵的值的前一個和後一個nxet域即可。

實作代碼

var removeNthFromEnd = function(head, n) {
    if (!head) return null;
    // 建立哈希表
    const m = new Map();
    // 讓臨時指針指向head
    let temp = head;
    let i = 1;
    // 循環開始
    while (temp) {
        m.set(i,temp);
        temp = temp.next;
        i++;
    }
    const x = i - n;
    if (x > 1) {
        m.get(x-1).next = m.get(x+1) || null;
    } else {
        return head.next;
    }
    return head
};      

啟示

  • 學會通過哈希表來周遊連結清單節點。

繼續閱讀