題目描述
解題思路
- 本題主要思路是使用哈希表,具體思路如下:
- 使用哈希表存儲每一個節點,鍵為第幾個元素,值為目前節點指針。
- 找到倒數第幾個節點的鍵。
- 修改目前鍵的值的前一個和後一個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
};
啟示
- 學會通過哈希表來周遊連結清單節點。