首页 > 其他分享 >BM9 删除链表的倒数第n个节点

BM9 删除链表的倒数第n个节点

时间:2022-12-29 10:33:50浏览次数:65  
标签:pre node slow fast next 链表 let BM9 倒数第

题目描述

牛客原题

代码参考

// 可以借助之前,追击的问题,借助返回倒数第k个节点的题的基础上
function removeNthFromEnd( head ,  n ) {
    // write code 
    
    let node = new ListNode(-1)
    node.next = head
    let pre = node
    let fast = slow = head
    for(let i = 0; i < n; i++) {
        if(fast===null) return null
        fast = fast.next
    }
    // 此时让fast和next同时跑
    while(fast){
        fast = fast.next
        slow = slow.next
        pre = pre.next
    }
    // 假设链表的长度足够时,那么此时slow的后面还有节点,slow是我们要删除的节点
    pre.next = slow.next
    slow.next = null
    return node.next
}

标签:pre,node,slow,fast,next,链表,let,BM9,倒数第
From: https://www.cnblogs.com/zx529/p/17011871.html

相关文章

  • BM8 链表中倒数最后k个结点
    题目描述输入一个长度为n的链表,设链表中的元素的值为ai,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为0的链表。思路分析方法一:第一遍计算链......
  • 三、数据结构第三节——链表(2)
    三、数据结构第三节——链表(2)今天(好家伙,昨天忘记发了...)继续链表,嘤嘤嘤...今天尝试加入“分析”栏帮助梳理思路。二、合并链表先复习一下昨天那令人悲伤的例2T_......
  • [数据结构]单向链表的翻转(C语言)
    单向链表的翻转单向链表翻转思路假设链表是:1->3->5->∅,所要求得的链表是5->3->1->∅。只需要将每个节点的next指向其之前的一个节点即可。对于第一个节点,如果是头......
  • BM4-合并两个有序链表
    题目要求思路分析对于链表类的题,其实大部分有一个万能的方法,就是遍历一次链表,将他们的节点放到数组中,将节点的next置空,使用数组的各种方法去操作链表,之后再拼接链表。不......
  • 翻转链表
      代码如下/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/......
  • 数据结构第三节——链表(1)
    三、数据结构第三节——链表今天学链表~~~话不多说,上例题!一、小学生排序期末考试结束了,老师想请你帮忙统计全班同学的分数。已知班里有n个同学,老师会把n个同学......
  • ARM Linux中链表使用实例
          ......
  • 单向链表
             ......
  • 数据结构36-链表insert方法实现
    ......
  • 数据结构35-链表toString方法实现
    ......