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

相关推荐
她说可以呀6 小时前
Vue插槽
前端·javascript·vue.js
qq_448011166 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
FRing039 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
兰亭妙微UI设计公司11 小时前
兰亭妙微ui设计公司分享:B端组件命名如何支持团队协作
前端·javascript·vue.js
小大宇12 小时前
Vue知识点-ElementPlus-03提示框+询问+通知
前端·javascript·vue.js
j7~12 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
前端技术官12 小时前
前端的技术判断力是怎么练出来的?
javascript·web前端·localstorage·debounce·弱网处理
Shaoshing14 小时前
LeetCode100 42.接雨水
java·算法·leetcode
程序员大阳14 小时前
副队长JavaScript教程(60)-BOM 初识:window 对象与浏览器模型
javascript·bom·window对象·浏览器模型
web打印社区14 小时前
Chrome-kiosk-printing能上生产吗
开发语言·前端·javascript·chrome·websocket