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

C语言——删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第n个节点,返回链表的头节点head。 阅读详情

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:

给定的 n 保证是有效的。

进阶:

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

解法:

思路: 算法是只做了一趟扫描,初始化两个节点,先让一个节点从头开始走n个位置,然后两个点再同时开始走,走到一个节点到了最后,则另一个节点就是所要删除的节点的位置。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        
        ListNode p=head;
        ListNode q=head;
        if(head==null){
            return head;
        }
        
        for(int i=0;i<n;i++){
            q=q.next;
        }
        if(q==null){
           head=head.next;
            return head;
        }
        while(q.next!=null){
            q=q.next;
            p=p.next;
        }        
        p.next=p.next.next;
        return head;
    }
}
BB一句:

试试C和c++实现。

【面试题】删除链表中倒数第n个节点 问题描述给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。样例 给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.解题思路定义两个指针,刚开始分别指向头结点,然后先让一个指针先走n-1步,接着两个指针同时遍历链表,当第一个指针到达链表尾部的时候,第二个指针指向的就是要删除的倒数第n个结点。 编程需要注意的 阅读详情

相关推荐

一次遍历删除倒数第n个节点

一次遍历单链表删除倒数第n个节点的问题,跟删除某个节点的前一个节点是一个思路

链表遍历一次删除倒数第N个节点

刷 leetcode的 Remove Nth Node From End of List 的题目,一开始想这算是easy的题目了,只需要遍历一次,记录n个节点,然后减去倒数的节点数,就得到所要删除的节点。但是没注意题目的只遍历一次。 解决这道题目的主要思路是,设立两个指针,快指针和慢指针,这两个指针同时指向初始位置。快指针先移动N个节点,快节点和慢节点同时移动,当快节点移动到末尾时,慢节点处

tensorflow mnist 1573

2024东南大学533复试C++程序设计笔试真题精讲

【东南553复试C++】2024东南大学533复试C++程序设计笔试真题精讲

转遍世界 3415

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

Unknown给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。:你能尝试使用一趟扫描实现吗?

weixin_52739099的博客 1275

如何在TRAE(国际版)中搭建ESP-IDF环境以及怎么使用ESP-IDF插件编译烧录到ESP32s3中

点击进入,再点击ESPRESSIF中的EXPRESS,这里会下载ESP-IDF所需要的全部工具和包等等。首先我们从终端中进入项目所在的目录中,我的项目在E盘下的jikecode\esp32s3-client中,我就进入这个目录下。,因为我的项目是针对ESP32-S3进行开发的,所以这里的芯片型号是esp32s3,大家根据各自芯片的型号来输入。执行了这个命令后,ESP-IDF会自动配置与ESP-S3相关的编译选项,生成对应芯片的配置文件。进入第一个ESP-IDF插件,进行安装,注意安装的是。

一个爱折腾技术的普通人,分享踩过的坑、学到的干货。 1509

9.Vue前端使用iframe集成帆软报表的单点登录

CPT普通报表的地址:【帆软的服务http】+【/webroot/decision/view/report?【帆软的服务http】+【/webroot/decision/view/form?// fineReportHttp:帆软部署的地址。//如果为ie浏览器则页面加载完成后立即执行。// fineLinkSrc:帆软报表的url。//其他浏览器则重新加载onload事件。// 拿到配置的帆软报表的地址参数。//判断是否为ie浏览器。// 帆软报表登录和打开。// 帆软报表登录和打开。

qq_27860623的博客 4650

LeetCode 从链表中删除倒数第N个节点

从单链表中删除倒数第N个节点,要求之遍历一遍lia

dddongdong的专栏 3692

Flowable高级篇 -6.8.0 最全表结构说明-主要表结构字段注释

flowable 28张表 详细

billzhen的博客 1万+

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

难度:两星 如何删除单链表得倒数第N个节点?这里依然利用快慢指针的办法,让slow指针指向第一个节点,让fast指针和slow间隔N个节点,即指向第N个节点。然后同时移动slow和fast,每次前进一步,直到fast指针到最后一个指针,此时slow指针就是倒数第N个节点,是不是觉得很巧妙?这里找到了第N个节点之后需要删除掉这个节点,那么因为是单链表,我们必须保留被删除节点之前的这个节点,以及被删...

682

Qt中常见的面试题总结

基于Qt开发的一些常用面试题

一名热爱编程的程序员 8493

Avellaneda & Stoikov模型实战解析:如何动态调整做市策略参数

本文深入解析Avellaneda & Stoikov模型在动态调整做市策略参数中的应用,重点探讨库存状态、剩余时间、风险系数和订单深度等核心参数的实战技巧。通过加密货币市场的实际案例,展示如何根据市场波动和流动性动态调整参数,提升做市策略的盈利能力和风险控制水平。

weixin_29070861的博客 203

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

引入虚拟头节点后,删除头节点和其他节点的操作可以统一处理,因为头节点也会有一个前节点(即虚拟头节点)。找到节点后,将节点的前一个节点的 next 指向节点的下一个节点;将节点的下一个节点的 prev 指向节点的前一个节点,这样就将节点从链表中删除了。为了方便删除节点,我们需要一个虚拟节点,让虚拟节点的 next 指向 head,这样就能保证删除节点的前一个节点不为空。倒数第 4 个节点的前一个节点就是 5-4=1,也就是第一个节点。第一步,遍历链表,找出链表的长度,确定要删除的节点的位置。

qq_64948664的博客 938

Himall商城ExpressDaDaHelper 取消订单(线上环境)

Himall商城ExpressDaDaHelper 取消订单(线上环境)

GZM888888的博客 399

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

原题: 删除链表倒数第N个节点 第一种解法: 本文适用于初学者。它介绍了以下内容:链表的遍历和删除其末尾的第 n 个元素。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val ...

小诚信驿站 571

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

// 删除倒数第n个节点 public void del(int n, ListNode node) { int length = 0; // 记录链表长度 ListNode head = node; // 保存头节点 while (node != null) { length++; node = node.next; // 移动指针 } ListNode resNode; // 从前往后找 int left = len

for62的博客 711

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 解: class Solution { public:...

陈乐乐的博客 1060

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 最先想到的做法一定是先找出链表的长度,然后正向找到倒数第N个节点。这样思路简单,但是...

weixin_45398265的博客 470

删除链表的倒数第n的节点

题目描述 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头节点。 示例: 给定一个链表: 1->2->3->4->5, 和n= 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的n保证是有效的。 测试数据 class Node(): '''定义一个链表类''' de...

weixin_41076200的博客 145

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

题目描述: 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的n保证是有效的。 解题思路:本人使用双指针法 首先创建一个虚拟头节点(dummyHead),作为给定头节点的...

weixin_43573824的博客 1062

删除链表中的倒数第n个节点

题目描述 给定一个链表,删除链表中倒数第n个节点,返回删除后的链表。 例子: 给定链表 1 -&amp;gt; 2 -&amp;gt; 3 -&amp;gt; 4 -&amp;gt; 5; n = 2; 返回结果 1 -&amp;gt; 2 -&amp;gt; 3 -&amp;gt; 5; 题目分析 入参,链表头节点head, 要删除的节点number 思路分析 如果未说明入参一定合法,按照防御式编程的思想,需要对参数进行校验。 单向链表,并且

u014570945的博客 165
上一篇: 删除链表中的节点
下一篇: 反转链表
coder_flag
博客等级 码龄9年 2粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值