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的用法:
有删除头结点的操作的时,用哨兵
当头结点为空,可能返回空结点时,用哨兵

相关推荐
要加油哦~17 小时前
AI | 实践教程 - ScreenCoder | 多agents前端代码生成
前端·javascript·人工智能
一个public的class17 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
青茶36017 小时前
php怎么实现订单接口状态轮询请求
前端·javascript·php
YuTaoShao18 小时前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法一)前后缀分解
算法·leetcode·职场和发展
火车叼位18 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
VT.馒头18 小时前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
鱼毓屿御18 小时前
如何给用户添加权限
前端·javascript·vue.js
JustHappy18 小时前
「web extensions🛠️」有关浏览器扩展,开发前你需要知道一些......
前端·javascript·开源
xixixin_18 小时前
【JavaScript 】从 || 到??:JavaScript 空值处理的最佳实践升级
开发语言·javascript·ecmascript
belldeep19 小时前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask