leetcode-19删除链表的倒数第 N 个结点

leetcode-19删除链表的倒数第 N 个结点原题链接给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= s

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

进阶:你能尝试使用一趟扫描实现吗?

示例 1:
在这里插入图片描述

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

输入:head = [1], n = 1
输出:[]
示例 3:

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

提示:

链表中结点的数目为 sz
1 <= sz <= 30
0 <= Node.val <= 100
1 <= n <= sz

题解
显然一个指针向前移动n,步,然后两个在一起前进直到最后一个遇到末尾

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */
class Solution { 
   
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) { 
   
        ListNode *t = head,* p = head;
        int i = 0;
        while(i < n && t != NULL)t = t->next,i ++;
        if(i != n)return head;
        if(t != NULL)t = t->next;
        else return head->next;
        while(t != NULL){ 
   
            t = t->next;
            p = p->next;
        }
        ListNode * tt = p->next;
        p->next = p->next->next;
        return head;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169017.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正在接入或无法接入认证服务器(服务器未运行怎么解决)

    迷你版云服务器未启动内容精选换一换企业主机安全(HostSecurityService,HSS)是提升服务器整体安全性的服务,通过主机管理、风险防御、入侵检测、安全运营、网页防篡改功能,可全面识别并管理云服务器中的信息资产,实时监测云服务器中的风险,降低服务器被入侵的风险。使用主机安全需要在云服务器中安装Agent。安装Agent后,您的云服务器将受到HSS云端防护中企业主机安全(Host…

    2022年4月17日
  • Java虚拟机:类加载机制与双亲委派模型

    Java虚拟机:类加载机制与双亲委派模型

    2021年4月10日
  • VB程序激活成功教程_激活成功教程软件下载

    VB程序激活成功教程_激活成功教程软件下载VB程序的激活成功教程思路总结、编译方式vs激活成功教程工具比较把一个简单的VB计时器程序研究透了,对于VB激活成功教程应有较大帮助,如有错误欢迎指出。VB程序也是一个非常有趣的东西,你去看VB的主程序,是用MicrosoftVisualC++5.0编写的,也就是说,其实里面调用的各种命令和控件,都是一段VC++的代码。还有VB运行时必须的“库”(虚拟机):msvbvm50,msvbvm60,

    2022年9月27日
  • visual studio2012产品密钥_visual studio激活码

    visual studio2012产品密钥_visual studio激活码YKCW6-BPFPF-BT8C9-7DCTH-QXGWC

    2022年10月15日
  • 微信服务号开发整体流程图_微信号怎么改第二次

    微信服务号开发整体流程图_微信号怎么改第二次1、微信的各个平台微信开放平台,面向开发人员,为网站、App提供微信第三方登录功能,为App提供支付功能(通过客户端sdk拉起微信客户端);微信公众平台,对应的是公众号,包括订阅号、服务号、企业号,面向运营人员和开发人员,运营可以直接登录公众号管理后台查看公众号的各种指标,开发则是通过调用微信提供的各种接口来增强公众号的功能;微信商户平台,用户通过微信支付的钱,最终到达商户账号。无论是开…

    2022年9月30日
  • 详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来[通俗易懂]

    详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来[通俗易懂]  从本文开始,在之后的一段时间里,我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,本文作为本系列的第一篇文章,主要介绍如何让小车动起来。一、硬件的选择  1、底盘和电机   底盘的形状呢,大家可以按照自己的需要自主选取,至于电机关注一下工作电压,转速,电机类型就差不多,对于新手,可以尝试以下样式(4WD智能小车底盘,附带4个直流减速电机,电机接线需要自己焊接),也就是本文例子采用的底盘和电机,组装简单,使用方便,特别适合新手。  2、电机驱动模块   

    2022年6月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号