Leetcode 19. 删除链表的倒数第 N 个结点 JavaScript (Day 11)

js一刷自解哈希表

javascript 复制代码
var removeNthFromEnd = function(head, n) {
    let idx=new Map();
    let cur=head;
    while(cur){
        idx.set(cur,1);
        cur=cur.next;
    }
    let keys=[...idx.keys()];
    let temp=keys[keys.length-n];
    if(keys.length-n===0){
        return temp.next;
    }
    let prev=keys[keys.length-n-1];
    prev.next=temp.next;
    return head;



};

js一刷 (哨兵+双指针)

javascript 复制代码
var removeNthFromEnd = function(head, n) {
    let dummy=new ListNode(0,head);
    let left=dummy;
    let right=dummy;
    while(n){
        right=right.next;
        n--;
    }
    while(right.next){
        left=left.next;
        right=right.next;
    }
    let temp=left.next;
    left.next=temp.next;
    return dummy.next;
    
};

哨兵dummy的用法:
有删除头结点的操作的时,用哨兵
当头结点为空,可能返回空结点时,用哨兵

相关推荐
让我上个超影吧5 小时前
【力扣26&80】删除有序数组中的重复项
算法·leetcode
戌中横6 小时前
JavaScript——Web APIs DOM
前端·javascript·html
Beginner x_u6 小时前
如何解释JavaScript 中 this 的值?
开发语言·前端·javascript·this 指针
HWL56796 小时前
获取网页首屏加载时间
前端·javascript·vue.js
速易达网络7 小时前
基于RuoYi-Vue 框架美妆系统
前端·javascript·vue.js
漫随流水7 小时前
leetcode回溯算法(78.子集)
数据结构·算法·leetcode·回溯算法
全栈游侠7 小时前
数据结构 - 链表
数据结构·链表
We་ct8 小时前
LeetCode 151. 反转字符串中的单词:两种解法深度剖析
前端·算法·leetcode·typescript
wen__xvn8 小时前
代码随想录算法训练营DAY25第七章 回溯算法 part04
算法·leetcode·深度优先
yinmaisoft8 小时前
JNPF 表单模板实操:高效复用表单设计指南
前端·javascript·html