删除链表倒数第n个节点_单向链表删除倒数第n节点

删除链表倒数第n个节点_单向链表删除倒数第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;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168726.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 李彦宏现身巴黎Viva科技大会:机遇常在,未来通过科技和创新改变生活[通俗易懂]

    李彦宏现身巴黎Viva科技大会:机遇常在,未来通过科技和创新改变生活[通俗易懂]近日,为期三天的“VivaTechnologyParis2016”科技峰会在法国巴黎举办,李彦宏受邀出席。阳狮集团董事长兼CEOMauriceLevy担当峰会对话主持,共议全球…

    2022年10月30日
  • labelme图像标注_ai标注工具

    labelme图像标注_ai标注工具参考:https://blog.csdn.net/u011574296/article/details/79740633在做目标检测任务时,需要用到labelImg进行画框标注,在之前的文章中已经介绍过该工具的使用方法。然而如果是做语义分割的任务时,就不能只是标注框里,需要用另外一种工具labelme进行标注,本文对该工具的安装使用方法进行介绍。官方教程:https://github.co…

  • C语言如何计算数组的长度

    C语言如何计算数组的长度(1)借助sizeof()函数:#include&lt;stdio.h&gt;intmain(){ //定义一个整型数组,并进行初始化赋值9个数据:  intarr[]={1,2,3,4,5,6,7,8,9}; intlength=0; //计算数组中数据长度: //所有数据的字节数除以一个数据的字节数即为数据的个数:  length=sizeof(arr)/…

  • 二进制加,减法,23个位运算技巧[通俗易懂]

    二进制加,减法,23个位运算技巧[通俗易懂]二进制加,减法二进制最高位为1时表示负数,为0时表示正数。**原码:**一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。举例说明:      int类型的3的原码是11B(B表示二进制位),在32位机器上占四个字节,那么高位补零就得:      00000000000000000000000000000011    …

  • 大物电磁感应定律知识总结_电动势等于电压吗

    大物电磁感应定律知识总结_电动势等于电压吗动生电动势:磁场保持不变,导体回路或导体在磁场中运动产生的电动势感生电动势:导体回路不动,磁场发生变化产生的电动势一、在磁场中运动的导线内的感应电动势磁通量变化率为:根据法拉第电磁感应定律,在运动导线MN段上产生的动生电动势即为:因此,动生电动势在量值上等于在单位时间内导线所切割的磁感应线数动生电动势的电子理论解释当导线以速度v向右运动时,导线内每个自由电子获得向右的定向速度v,由于在磁场中,自由电子收到洛伦兹力电子在这个力的作用下,从导…

    2022年10月25日
  • 传统请求风格 VS RestFul 风格

    传统请求风格 VS RestFul 风格RestFul风格概念Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。功能资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应添加、删除、修改、查询。传统方式操作资源:通过不同的参数来实现不同的效果!方法单一,post和get​ http://127.0.0.1/item/queryItem.actio

发表回复

您的电子邮箱地址不会被公开。

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