题目描述
解题思路
- 本题主要思路是使用哈希表,具体思路如下:
- 使用哈希表存储每一个节点,键为第几个元素,值为当前节点指针。
- 找到倒数第几个节点的键。
- 修改当前键的值的前一个和后一个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
};
启示
- 学会通过哈希表来遍历链表节点。