【Hot100】LeetCode—19. 删除链表的倒数第 N 个结点

news2024/9/20 5:49:40

目录

  • 1- 思路
    • 双指针
  • 2- 实现
    • ⭐19. 删除链表的倒数第 N 个结点——题解思路
  • 3- ACM 实现


  • 原题连接:19. 删除链表的倒数第 N 个结点

1- 思路

双指针

  • 定义 dummyHead 处理头结点情况
  • slow 指针:初始化为 dummyHead 定位到被移除元素的前一个
  • fast 指针:初始化诶 dummyHead ,从 dummyHead 开始 先移动 n
  • 之后 同时移动 slowfast ,终止条件是 while(fast.next!=null)

2- 实现

⭐19. 删除链表的倒数第 N 个结点——题解思路

在这里插入图片描述

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        // 双指针
        // 定义 dummy
        ListNode dummyHead = new ListNode(-1);
        dummyHead.next = head;

        ListNode slow = dummyHead;
        ListNode fast = dummyHead;
        for(int i = 0 ; i < n;i++){
            fast = fast.next;
        }
        while(fast.next!=null){
            slow = slow.next;
            fast = fast.next;
        }
        // slow 定位到前
        slow.next = slow.next.next;
        return dummyHead.next;
    }
}

3- ACM 实现

public class removeN {
    public static class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
            next = null;
        }
    }

    public static ListNode removeNthFromEnd(ListNode head, int n) {
        // 双指针
        // 定义 dummy
        ListNode dummyHead = new ListNode(-1);
        dummyHead.next = head;

        ListNode slow = dummyHead;
        ListNode fast = dummyHead;
        for(int i = 0 ; i < n;i++){
            fast = fast.next;
        }
        while(fast.next!=null){
            slow = slow.next;
            fast = fast.next;
        }
        // slow 定位到前
        slow.next = slow.next.next;
        return dummyHead.next;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
// 读取第一个链表的节点数量
        int n1 = sc.nextInt();
        ListNode head1 = null, tail1 = null;
        for (int i = 0; i < n1; i++) {
            int val = sc.nextInt();
            ListNode newNode = new ListNode(val);
            if (head1 == null) {
                head1 = newNode;
                tail1 = newNode;
            } else {
                tail1.next = newNode;
                tail1 = newNode;
            }
        }
        System.out.println("输入n");
        int nth = sc.nextInt();
        ListNode forRes = removeNthFromEnd(head1,nth);
        while(forRes!=null){
            System.out.print(forRes.val+"");
            forRes = forRes.next;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海外短剧系统开源代码+快速搭建部署指南

前言&#xff1a; 海外短剧系统是一个专门为海外观众设计和运营的内容平台。这个系统不仅包含了丰富的短剧资源&#xff0c;还提供了全面的技术支持和运营服务&#xff0c;以确保短剧内容能够顺利地面向全球观众传播。 一、市场背景 由于国内短剧市场的急剧增长&#xff0c;…

x64dbg: 用于Windows的开源二进制调试器

x64dbg是Windows的开源二进制调试器&#xff0c;专为恶意软件分析和可执行文件的逆向工程而设计&#xff0c;无需访问源代码。 它提供了广泛的功能和插件系统&#xff0c;允许您定制和扩展其功能以满足您的需求。 人们喜欢x64dbg的原因可能是它有一个UI&#xff0c;可以轻松地…

开源服务器运维工具1Panel

1Panel是杭州飞致云信息科技有限公司推出的一款现代化、开源的Linux服务器运维管理面板。 以下是对1Panel的详细介绍&#xff1a; 一、基本信息 产品名称&#xff1a;1Panel所属公司&#xff1a;杭州飞致云信息科技有限公司编写语言&#xff1a;Golang上线时间&#xff1a;20…

团队管理的五个基本原则

一个成功的团队不仅能够迅速响应市场变化&#xff0c;还能在激烈的竞争中保持持续的创新力和竞争力。为了实现这一目标&#xff0c;团队管理必须遵循以下五个基本原则&#xff1a; 1、信任为先 “用人不疑&#xff0c;疑人不用”是团队管理的首要原则。信任是团队合作的基石。…

海外最新趋势解读!美国IMS2024揭示了哪些连接器新技术?

2024年6月的IEEE MTT-S国际微波研讨会在华盛顿特区盛大开启&#xff0c;集结了全球射频行业的顶尖企业&#xff0c;展示了集成电路、传感器、连接器、电缆、光学和波导等多元化产品和技术。 作者 | David Shaff 编译 | 深圳市连接器行业协会 李亦平 在今年IMS2024活动中所展示…

C# x Unity面向对象补全计划 设计模式 之 实现一个简单的有限状态机

一个简单的有限状态机可以有如下内容 1.状态基类&#xff08;定义基本状态的方法&#xff0c;如进入&#xff08;Enter&#xff09;、执行&#xff08;Execute&#xff09;和退出&#xff08;Exit&#xff09;&#xff0c;同时可以在此声明需要被管理的对象&#xff09; 2.具体…

电动汽车是否将成为银的最大需求端?

近年来&#xff0c;工业对银的需求一直在激增。主要是由于太阳能面板制造商对银的大量需求&#xff0c;预计2023年的需求量将比前一年增长11%。预测者预计今年又会增长9%。 然而&#xff0c;对于银的投资者来说&#xff0c;未来制造商对银的需求前景甚至可能比最近的过去更加明…

使用Linux Systemd部署DotNet Quartz.Net定时任务

开发环境 Windows 10 WSL2Ubuntu 22.04DotNet 6Quartz.Net 代码实战 新建dotnet项目&#xff0c;添加引用Quartz.net包 入口程序&#xff1a; static void Main(string[] args){IConfiguration configuration new ConfigurationBuilder().SetBasePath(Directory.GetCurren…

苹果手机白屏是怎么回事?解决方法分享

苹果手机作为市场上最受欢迎的智能手机之一&#xff0c;其稳定性和流畅性一直备受用户赞誉。然而&#xff0c;偶尔我们也会遇到一些令人头疼的问题&#xff0c;比如苹果手机出现白屏无反应的情况。那么&#xff0c;苹果手机白屏到底是怎么回事呢&#xff1f;本文将为大家详细解…

[RCTF2019]draw

下载是一个文本文档&#xff0c;百度AI cs pu lt 90 fd 500 rt 90 pd fd 100 rt 90 repeat 18[fd 5 rt 10] lt 135 fd 50 lt 135 pu bk 100 pd setcolor pick [ red orange yellow green blue violet ] repeat 18[fd 5 rt 10] rt 90 fd 60 rt 90 bk 30 rt 90 fd 60 pu lt 90 f…

开放式耳机有什么好处?五款高口碑优质爆款直入!

开放式耳机提供了多种好处&#xff0c;尤其适合特定的使用场景和用户群体。以下是开放式耳机的一些显著优势&#xff1a; 1. 佩戴舒适性&#xff1a;开放式耳机不堵塞耳道&#xff0c;允许空气流通&#xff0c;减少耳朵内部的潮湿和压力&#xff0c;适合长时间佩戴&#xff0c…

Tomcat部署项目get请求中文乱码

问题描述 tomcat部署的项目&#xff0c;get请求到后端后&#xff0c;打印日志发现通过RequestParam()接收的参数值乱码。 问题猜测 编码错误导致的乱码。 流程梳理 浏览器发送请求时会自动对请求链接中自带的参数进行编码。编码时一般都是采用UTF-8的格式进行编码。请求到…

电脑无法新建 Word Excle PPT 这些文件是咋回事

咦 我的电脑怎么没有 Excel文件 Word文件 和 PPT选项嘞 &#xff01;&#xff01; 今天突然要写个材料&#xff0c;发现自己新建文件竟然没有excel文档 word和ppt幻灯片这些选项。哦 原来是我自己上次把电脑从win7升级win10系统之后还没有安装wps这些所以不能使用。如果你的电…

SIRA-PCR: Sim-to-Real Adaptation for 3D Point Cloud Registration 论文解读

目录 一、导言 二、 相关工作 1、三维点云配准工作 2、无监督域适应 三、SIRA-PCR 1、FlyingShape数据集 2、Sim-to-real自适应方法 3、配准 4、损失函数 一、导言 该论文来自于ICCV2023&#xff0c;论文提出了一种新的方法SIRA-PCR&#xff0c;通过利用合成数据Flying…

[RoarCTF2019]黄金6年

下载解压得一个MP4视频文件 播放了一下几秒过&#xff0c;太快了&#xff0c;使用Potplayer做视频切片&#xff0c;空格暂停播放&#xff0c;使用D F两个快捷键逐帧查看&#xff08;F前进一帧&#xff0c;D后退一帧&#xff09; 发现一个二维码&#xff0c;扫码得key1&#xf…

PiX4Dmatic1.63 Pix4Dsurvey1.63 实景三维建模软件功能介绍 下载软件License使用

PIX4D matic摄影测量软件是一款非常不错的摄影测量软件&#xff0c;这款软件用于廊道和大比例尺测绘的下一代摄影测量软件&#xff0c;PIX4D matic也支持常用的垂直坐标系及其相应的大地水准面。 PIX4D matic(摄影测量软件)是一款非常不错的摄影测量软件&#xff0c;这款软件用…

如果提议者提议区块的时间晚了,会对见证有何影响?

原文标题&#xff1a;《On Attestations, Block Propagation, and Timing Games》 撰文&#xff1a;Nero_eth 编译&#xff1a;Tia&#xff0c;Techub News 如今&#xff0c;提议者的时序博弈已经很常见了&#xff0c;很多研究也都在分析这一现象。 本篇文章将带大家了解提议…

windows上传的文本在linux执行不了,格式转换

在windows编辑的文件脚本上传到linux里面执行不了 1.现象描述 比如在windows编辑简单的文本 2.上传到linux后执行无结果 无响应 3.编码问题 比普通文件多了with CRLF line terminators结尾格式。 cat -v 可以让隐藏的转义字符也打印中显示 4.原因windows和linux的换行符不…

逐级删除空目录 如果目录非空则停止删除操作 os.removedirs(path)

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 逐级删除空目录 如果目录非空 则停止删除操作 os.removedirs(path) [太阳]选择题 下列关于代码和os.removedirs(path)函数说法正确的是&#xff1f; import os os.makedirs("D:/test1…