【LeetCode热题100】打卡第10天:删除链表倒数第N个节点

news2024/10/6 2:27:20

文章目录

  • 删除链表倒数第N个节点
    • ⛅前言
    • 🔒题目
    • 🔑题解

删除链表倒数第N个节点

⛅前言

大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏!

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。在此专栏中,我们将会涵盖各种类型的算法题目,包括但不限于数组、链表、树、字典树、图、排序、搜索、动态规划等等,并会提供详细的解题思路以及Java代码实现。如果你也想刷题,不断提升自己,就请加入我们吧!QQ群号:827302436。我们共同监督打卡,一起学习,一起进步。

博客主页💖:知识汲取者的博客

LeetCode热题100专栏🚀:LeetCode热题100

Gitee地址📁:知识汲取者 (aghp) - Gitee.com

Github地址📁:Chinafrfq · GitHub

题目来源📢:LeetCode 热题 100 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台

PS:作者水平有限,如有错误或描述不当的地方,恳请及时告诉作者,作者将不胜感激

🔒题目

原题链接:19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)

在这里插入图片描述

🔑题解

  • 解法一:模拟

    这个题是考察数据结构,主要是考察你对链表的操作,相对而言算比较简单的题目😄,唯一需要注意的点是要单独处理删除头节点的情况,防止出现NPE,相信你看完代码应该能够很容易理解的

    /**
     * @author ghp
     * @title 删除链表倒数第N个节点
     */
    class ListNode {
        int val;
        ListNode next;
    
        ListNode() {
        }
    
        ListNode(int val) {
            this.val = val;
        }
    
        ListNode(int val, ListNode next) {
            this.val = val;
            this.next = next;
        }
    }
    
    class Solution {
        public ListNode removeNthFromEnd(ListNode head, int n) {
            // 遍历得到链表的长度
            int len = 0;
            ListNode tempNode = head;
            while (tempNode != null) {
                tempNode = tempNode.next;
                len++;
            }
            // 判断删除的节点是否是头节点(防止后面出现NPE)
            if (len == 1 || len == n) {
                return head.next;
            }
            // 获取要删除链表的前一个节点
            int i = len - n - 1;
            tempNode = head;
            while (i != 0) {
                tempNode = tempNode.next;
                i--;
            }
            // 删除节点
            tempNode.next = tempNode.next.next;
    
            return head;
        }
    }
    

    复杂度分析:

    • 时间复杂度: O ( n ) O(n) O(n)
    • 空间复杂度: O ( 1 ) O(1) O(1)

    其中 n n n 为链表中节点的个数

附LeetCode官方代码:

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode dummy = new ListNode(0, head);
        int length = getLength(head);
        ListNode cur = dummy;
        for (int i = 1; i < length - n + 1; ++i) {
            cur = cur.next;
        }
        cur.next = cur.next.next;
        ListNode ans = dummy.next;
        return ans;
    }

    public int getLength(ListNode head) {
        int length = 0;
        while (head != null) {
            ++length;
            head = head.next;
        }
        return length;
    }
}

作者:LeetCode-Solution
链接:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/solution/shan-chu-lian-biao-de-dao-shu-di-nge-jie-dian-b-61/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

可以发现和博主的代码大差不差,这题主要是考察对链表的操作,并没有考察什么算法,所以相对而言就比较简单,本题的通过率也挺高的

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

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

相关文章

8. 何为ECC

非对称加密 在我们认知里面&#xff0c;通常说到非对称加密&#xff0c;就会弹出2个词&#xff0c;RSA和ECC&#xff0c;做过对称加密的都非常清楚&#xff0c;RSA其实就是模指运算。用公钥来加密&#xff0c;私钥来解密&#xff1b;私钥签名&#xff0c;公钥验签。但是提到EC…

【数据结构】链表 linked list

一、什么是链表 零散的内存空间存储&#xff0c;由元素和指针组成 二、常用操作 1.原理 access&#xff1a;通过next指针遍历 时间复杂度&#xff1a;O(N) search&#xff1a;通过next指针遍历 时间复杂度&#xff1a;O(N) insert&#xff1a;找个新的内存空间存储新元素…

学习HCIP的day.10

十、对BGP一些情况的总结&#xff1a; 1、路由条目不优特殊情况&#xff1a; 在BGP协议中&#xff0c;存在一种无法优秀的路由条目&#xff1b;假设R4路由表中存在一条非BGP产生的到达5.5.5.5的路由条目&#xff0c;且该条目用于R4与R5建立BGP邻居关系&#xff1b;那么之后R5…

【Linux网络】搭建LNMP架构

搭建LNMP架构 一、编译安装MySQL服务二、安装Nginx服务三、安装配置PHP解析环境四、部署Discuz社区论坛Web应用五、部署博客论坛应用六fpm进程优化 一、编译安装MySQL服务 1.安装MySQL环境依赖包 yum -y install gcc gcc-c ncurses ncurses-devel bison cmake2、创建运行用户 u…

地震勘探基础(三)之地震波的时距曲线

时距曲线 在反射波地震勘探中&#xff0c;一般是在地面激发地面接收&#xff0c;激发点到接受点的距离称为炮间距&#xff08;offset&#xff09;&#xff0c;用 x x x表示。如果炮间距为0&#xff0c;称为自激自收。 单道接收&#xff1a;激发一次只在一个位置上接收地震波。…

在线ps网页版推荐,让你摆脱安装包的烦恼

在设计领域&#xff0c;Photoshop的地位多年来一直是不可动摇的&#xff0c;其强大的功能可以毫不夸张地说&#xff1a;只有你想不到的&#xff0c;没有PS做不到的。但强大如PS&#xff0c;也有自己的小局限性&#xff1a;处理矢量图相对较弱&#xff0c;更难掌握。今天&#x…

微信小程序——监听页面滑动(一)onPageScroll

微信小程序——手把手教你学会监听页面滑动 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货如何进行页面监听了解onPageScroll实际使用onPageScroll 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09; 知识专栏专栏链接微信小程序专栏ht…

栈和队列高频面试题(必刷): 用队列实现栈 用栈实现队列 实现循环队列 括号匹配

文章目录 用队列实现栈用栈实现队列实现循环队列括号匹配 用队列实现栈 题目描述&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通队列的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MySt…

新项目 使用 IDEA 搭建后端环境 及 搭建是可能遇到的 问题 及解决方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 新项目 使用 IDEA 搭建后端环境 及 搭建是可能遇到的 问题 及解决方法 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 新项目 使用 IDEA 搭建后端环…

【群智能算法改进】一种改进的沙丘猫群优化算法 改进沙丘猫群算法 改进SCSO[2]【Matlab代码#36】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 原始沙丘猫群优化算法2. 改进沙丘猫群算法2.1 非线性自适应参数2.2 Cauchy变异策略2.3 最优邻域扰动策略 3. 部分代码展示4. 仿真结果展示5. 资源获取6. 参考文献 【获取资源请见文章第5节&#xff1a;资源获取】 1.…

华为OD机试真题B卷 Java 实现【光伏场地建设规划】,附详细解题思路

一、题目描述 祖国西北部有一片大片荒地&#xff0c;其中零星的分布着一些湖泊&#xff0c;保护区&#xff0c;矿区&#xff1b;整体上常年光照良好&#xff0c;但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站&#xff0c;生产清洁能源。对每平方公里的土…

主动打包、高效管理的主题工具:逐浪HMS主题大师1.5-即速推送、华为小组件缓存优化、锁屏提取、资源审计、技术秘笈,移动主题设计利器

主动打包、高效管理的主题工具&#xff1a;逐浪HMS主题大师1.5-即速推送、华为小组件缓存优化、锁屏提取、资源审计、技术秘笈&#xff0c;移动主题设计利器 主动打包&#xff1a;逐浪HMS主题大师1.3-即速推送、华为小组件缓存优化、锁屏提取、资源审计、技术秘笈&#xff0c;移…

【经验分享】uniapp项目GIT如何忽略unpackage文件

最近的uniapp项目踩了个坑&#xff0c;就是建完项目&#xff0c;提交代码后&#xff0c;运行发布微信小程序&#xff0c;生成了unpackage里的build文件&#xff0c;这个时候提交总是提交一堆编译后的文件&#xff0c;甚至造成冲突。即使在.gitignore文件中写入忽略unpackage目录…

C++ 小区物业管理系统(QT图形界面)

目录 一、项目介绍 二、项目展示 三、源码分享 一、项目介绍 小区物业管理系统 (一)课题内客 该系统要求建立某小区物业管理系绕&#xff0c;并具有排序﹑查找﹒计算﹑显示等功能&#xff0c;通过此课题&#xff0c;熟练掌握文件﹐指针的各种操作&#xff0c;以及一些算法思…

某内Java课程(整套视频+课件)

某内Java课程 需要整套视频文件&#xff08;视频课件&#xff09;&#xff1a;(V: t_shopnet) 1 FUNDAMENTALO1 01: 对象和类(上)(6 am.mp4 01: 对象和类(上) (6 pm.mp4 02: 对象和类(下) (3) am .mp4 02: 对象和类(下) (3) pm.mp4 引用类型数组、继承的意义 (上) (3) am.mp403…

SOLIDWORKS流程模拟: 需要多少个CPU核心?

客户经常会问&#xff0c;他们应该为SOLIDWORKS Flow Simulation购买什么工作站&#xff0c;以尽可能快地解决他们的计算流体力学&#xff08;CFD&#xff09;问题。遗憾的是&#xff0c;这个问题后面往往有一个无法实现的期望&#xff0c;如 "一切都需要在10分钟内解决&q…

十分钟读懂Stable Diffusion运行原理

AIGC 热潮正猛烈地席卷开来&#xff0c;可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度&#xff0c;特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性&#xff0c;也在逐渐改变一部分行业的生产模式。惊艳其出色表现&#xff0c;也不禁好…

逆向python窃密软件

python发布的软件包一般逆向方法是,先使用pyinstxtractor获取到关键性pyc文件,再使用pycdc(又叫Decompyle++)将pyc文件反汇编成py源代码文件。 pyinstxtractor使用方法 将反编译的 Python 源打印到标准输出 python pyinstxtractor.py <filename>pycdc使用方法 对照…

BBC Studios 和 Reality+ 联手将节目《疯狂汽车秀》和《异世奇人》带入 The Sandbox 元宇宙

双方将携手在元宇宙推出一系列基于 BBC 世界著名品牌和节目的沉浸式体验。 今天标志着一个 The Sandbox 元宇宙的历史性时刻&#xff01;我们非常高兴地宣布&#xff0c;通过与 BBC Studios 和 web3 专家 Reality 的合作在 The Sandbox 平台带来全新体验&#xff0c;玩家可以与…

Franklin-Reiter相关消息攻击

文章目录 知识导入&#xff1a;题一题目描述&#xff1a;题目分析&#xff1a; 题二题目描述&#xff1a;题目分析&#xff1a; 题三题目描述&#xff1a;题目分析&#xff1a; 收获与体会&#xff1a; 知识导入&#xff1a; 总结&#xff1a; Franklin-Reiter相关消息攻击(Fra…