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

删除链表的倒数第N个节点

时间:2023-04-26 20:36:58浏览次数:45  
标签:结点 slow ListNode fast next 链表 节点 倒数第

题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

本题需要使用双指针,需要注意的点:
1、双指针都指向头结点
2、快指针提前移动n+1个点
3、结束条件:快指针指向空指针
4、慢指针指向要删除结点的前一个结点
5、删除结点时需要创建一个临时结点,然后释放
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* dummyHead = new ListNode(0);
        dummyHead->next=head;
        ListNode* fast=dummyHead;
        ListNode* slow=dummyHead;

        while( n+1 &&fast!=NULL)
        {
            fast=fast->next;
            n--;
        }

        while(fast!=NULL)
        {
            fast=fast->next;
            slow=slow->next;
        }

        ListNode* tmp=slow->next;
        slow->next=slow->next->next;
        delete tmp;

        return dummyHead->next;

    }
};

 

标签:结点,slow,ListNode,fast,next,链表,节点,倒数第
From: https://www.cnblogs.com/gaishuobulao/p/17357179.html

相关文章

  • What is RabbitMQ?-动力节点RabbitMQ章节笔记
    1. WhatisRabbitMQ?1.1简介RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;AMQP协议(http://www.amqp.org),即 AdvancedMessageQueuingProtocol,高级消息队......
  • 动力节点最新RabbitMQ笔记——1-6章What is RabbitMQ?
    1. WhatisRabbitMQ?1.1简介RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;AMQP协议(http://www.amqp.org),即 AdvancedMessageQueuingProtocol,高级消息队......
  • Ubuntu系统中查看USB摄像头信息(分辨率、设备节点、压缩格式等)(转)
    *下面将详细介绍在Ubuntu系统中USB摄像头涉及到的常见命令1:安装V4L2包:(v4l2:Videoforlinux2,为linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video*下,如果只有一个视频设备,通常为/dev/video0。)sudoapt-getinstal......
  • 循环控制:链表和数组
    循环是常用的流程环节。1//链表控制2//链表控制的优点,是通过指针来定位,那么循环的过程中,即是可变的,实时性很强。3vartmp*datastruct.ListNode4tmp=&datastruct.ListNode{Val:-1,Next:nil}56i:=07fornode:=tmp;node!=......
  • 两两交换链表中的结点
    题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)  步骤: classSolution{public:ListNode*swapPairs(ListNode*head){ListNode*dummyHead=newListNode(0);//......
  • 动力节点老杜Vue框架教程【三】Vue组件化
    Vue.js是一个渐进式MVVM框架,目前被广泛使用,也成为前端中最火爆的框架Vue可以按照实际需要逐步进阶使用更多特性,也是前端的必备技能动力节点老杜的Vue2+3全家桶教程已经上线咯!学习地址:https://www.bilibili.com/video/BV17h41137i4/视频将从Vue2开始讲解,一步一个案例,知识点......
  • 动力节点老杜Vue框架教程【三】Vue组件化
    Vue.js是一个渐进式MVVM框架,目前被广泛使用,也成为前端中最火爆的框架Vue可以按照实际需要逐步进阶使用更多特性,也是前端的必备技能动力节点老杜的Vue2+3全家桶教程已经上线咯!学习地址:https://www.bilibili.com/video/BV17h41137i4/视频将从Vue2开始讲解,一步一个案例,知识点由浅入......
  • 23-4-25--链表--一元多项式求导
    设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。输入样例:34-5261-20 ......
  • 立升非线性节点探测器,助力排查不可见的窃密隐患
    非线性结点探测器是一种现代化中非常重要的环境检测装备,用于探测隐藏的半导体结点,主要是P-N结。传统的X射线检查难以发现埋藏在墙体、家具、走道等隐蔽位置的窃听器、针孔摄像头以及疑似爆炸装置中的电子引爆电路。为了应对这些场景的检测需求,相应的无损检测手段非常必要。立升非线......
  • [ubuntu] 星火链快速搭建体验节点
    环境要求部署最小硬件要求:内存:8G硬盘:100Gcpu:8核Quicknode节点部署获取镜像版本号浏览器打开链接http://test.bifcore.bitfactory.cn/hello获取镜像dockerpullcaictdevelop/bif-core:v${chain_version}chain_version最新为上一步返回镜像版本号获取镜像报错原因......