leetcode链表题--删除链表的倒数第N个节点(java实现)

LeetCode 第19题:删除链表的倒数第 N 个结点解析 题目要求:给定一个链表,删除链表的倒数第N个节点,并返回链表的头节点。例如:[1,2,3,5][][1]在这篇博客中,我们详细讲解了如何使用双指针法来解决LeetCode第19题:删除链表的倒数第N个结点。通过使用双指针法,我们成功地在时间复杂度为O(n)的情况下找到了要删除的节点,并进行了删除操作。此外,我们还简要介绍了一次遍历法、栈方法和递归方法作为替代方法。双指针法:高效实用,适合大部分情况。一次遍历法:通过计算链表长度找到要删除的节点。栈方法:利用栈存储节点,找到要删除的节点。递归方法。 阅读详情

原题

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

示例:

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

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

说明:

给定的 n 保证是有效的。

进阶:

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

通过代码:

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode f = head;
		ListNode s = head;
		for (int i = 0; i < n; i++) {
			f = f.next;
		}
		if(f == null) {
			return head = head.next;
		}
		while(f.next!=null) {
			f = f.next;
			s = s.next;
		}
		s.next = s.next.next;
		
		return head;
    }
}

提供一份IDE自测代码:

import org.junit.Test;

public class SolutionTest {

	/**
	 *删除链表的倒数第N个节点 
	 */
	public ListNode removeNthFromEnd(ListNode head, int n) {
		ListNode f = head;
		ListNode s = head;
		for (int i = 0; i < n; i++) {
			f = f.next;
		}
		if(f == null) {
			return head = head.next;
		}
		while(f.next!=null) {
			f = f.next;
			s = s.next;
		}
		s.next = s.next.next;
		
		return head;
    }
	/**
	 * 打印链表
	 */
	public static void printList(ListNode head){
		if(null == head){
			return;
		}
		while(head.next!=null) {
			System.out.print(head.val+"->");
			head = head.next;
		}
		System.out.println(head.val);
	}
	
	@Test
	public void listTest(){
		ListNode head = new ListNode(1);
		head.next = new ListNode(2);
		head.next.next = new ListNode(3);
		head.next.next.next = new ListNode(4);
		head.next.next.next.next = new ListNode(5);
		head = removeNthFromEnd(head, 3);
		printList(head);
	}
}

 

手把手教你用C#实现TwinCAT 3 ADS通讯(附完整代码示例) 本文详细解析了如何使用C#实现TwinCAT 3 ADS通讯,包括协议核心价值、开发环境配置、变量通信实践及高级应用场景。通过完整代码示例和性能优化技巧,帮助开发者高效实现工业自动化系统中的实时数据交换,特别适合倍福(Beckhoff)平台用户。 阅读详情

相关推荐

仿人型机械臂逆运动学避坑指南:当末端三关节平行时如何处理奇异点

本文深入探讨了6R仿人型机械臂在末三轴平行结构下的逆运动学求解策略,重点分析了运动学逆解中的奇异点问题及其处理方法。通过MATLAB实现展示了D-H参数建模、几何解析法求解流程以及奇异点规避策略,为工业机器人开发提供了实用的数值算法方案和工程优化技巧。

sss66的博客 883

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

删除链表的倒数第N个节点 https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. /** * Definition for singly-linked list. * pub..

WukongGo的博客 619

Proteus仿真实战:基于IIC驱动SSD1306的0.96英寸OLED显示方案解析

本文详细解析了在Proteus仿真环境中基于IIC驱动SSD1306的0.96英寸OLED显示方案。从硬件搭建、IIC接口连接、软件驱动移植到常见问题排查,提供了全面的实战指导,帮助开发者快速实现OLED显示功能并优化性能。

weixin_28724661的博客 770

Java算法 删除链表的倒数第N个结点

文章通过双指针只需要一次遍历就解决了删除链表的倒数的第N个结点的问题。

qq_51744939的博客 520

Oracle监听配置

Oracle监听配置## 标题 选择“监听程序配置”,然后下一步。 选择重新配置,然后下一步/。 不用管,按下一步。 下一步。 选择“否”,下一步。 选择"本地net服务名配置",然后下一步。 选择“重新配置”,然后下一步。 服务名 是"Oracle",然后下一步。 主机为你的IP地址,在doc系统下通过"ipconfig"获取IP地址。然后输入,然后下一步。 选择“是,进行测试...

m0_46079215的博客 806

如何用SPSS做logistic回归

详细到只有作者本人能看懂的SPSS逻辑回归育儿经

qq_44794961的博客 2万+

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

给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。[1,2,3,5]

cao_si_的博客 979

CloudCompare 和 PCL:点云网格化分析与处理

点云网格化是将点云数据转化为规则网格的过程,其主要思想是将离散的点云投影到一个平面上,然后对该平面进行划分,形成一系列小区域。在点云网格化方面,PCL 提供了各种算法和工具,可以实现高效的点云网格化操作。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化算法参数,如搜索半径和最大三角形边长等,执行了网格化操作,最后将网格化结果保存到输出文件中。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化参数,如分辨率等,执行了网格化操作,最后将网格化结果保存到输出文件中。

TechPulseZ的博客 1291

019.删除链表的倒数第N个节点(Java/C)

首先遍历链表获取节点个数,然后计算倒数第 n 个节点的位置。如果要删除的是头节点,直接将头指针指向下一个节点。然后再次遍历链表,找到待删除节点的前一个节点,进行删除操作。最后返回修改后的链表头。综上,如果设置两个节点,间距为(n+1)个节点,从头遍历,逐次保持间距遍历链表,便可满足需求。1.如果要想删除节点,必须要找到被删除节点的上一个节点 ——> 设置哨兵节点。1.要删除的节点之后n个节点为null,即链表结束,可作为一个终止条件。2.此时,如果有一个指针指向删除链表节点的前一个节点,便可以完成删除。

XYX_888的博客 395

4、双足机器人mpc基础概念

机器人控制实际上不是连续的,是离散的,这就是控制信号的采样周期dt,一般每1ms对机器人发起一次控制信号。一般来说,dt越小,控制器的响应速度越快,但是由于预测的精度有限,如果控制时域过长,预测的误差会逐渐累积,导致控制器的性能下降。注意:1)在程序处理时,u的维度并不是由机器人的自由度确定的,是由其变量的个数及每个变量的空间维度确定,对于双足,采用力矩和力来控制,则u的维度是“2*2*3=12”。机器人实际运动过程中表现出来的状态x,x和xd是一致的,也包括运动速度ν、角速度ω、角度θ、位置p等。

1213

Qt Installer Framework 简单使用

qt installer framework 简单使用

qq_42815643的博客 2576

java基础入门书籍推荐,实战篇

第1部分:基础篇 第2部分:开发篇 第3部分:优化篇 第4部分:管理维护篇 Spring全套教学资料 Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。 资料领取方式:点击这里前往蓝色传送门 目录: 部分内容: Spring源码 第一部分 Spring 概述 第二部分 核心思想 第三部分 手写实现 IoC 和 AOP(自定义

m0_57286518的博客 431

DDR5 输入时钟抖动规范全解析!技术宅必看

简单说,时钟抖动就是时钟信号边沿的“颤抖”——信号本来应该在某个固定时间跳变,但实际时刻可能会前后波动。这种波动可能是随机的,也可能是确定性的。随机抖动(Random Jitter, Rj):符合高斯分布,像是你家猫咪不经意的晃动。确定性抖动(Deterministic Jitter, Dj):受限于特定周期或模式,像是邻居装修时的规律敲击声。⚠️ 注意,如果时钟抖动超出规格,DDR5可能无法正确接收或发送数据,内存错误、系统崩溃可就跟着来了!

weixin_43199439的博客 391

java实现leetcode第19题 —— 删除链表的倒数第 n 个节点

题目描述 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 思路与代码 ​​​​​​​方法一: ​​​​​​​思路 ​​​​​​​ 1.1、先找出整个链表的...

南夏一木子的博客 720

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LeetCode 19. 删除链表的倒数第N个节点 java

LeetCode 19. 删除链表的倒数第N个节点 java 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例 : 给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5. 说明: 给定的 n 保证是有效的。 JAVA 代码: class Solution { ...

lele的专栏 391

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

fast 先走 n 步,然后 slow、fast 才同时走,则 slow 和 fast 将会一直保持 n 步的差距,那么当 fast 越界时(即 fast == null 时),slow 就处于倒数第 n 个节点。因此,我们想要删除倒数第 n 个节点,则需要找到倒数第 n+1 个节点,按照前面slow、fast指针逻辑,则当fast走到倒数第1个节点时,slow位于倒数第n+1个节点位置。但是本题的链表是单向链表,即当前节点只能通过next找到下一个节点,而无法找到上一个。给你一个链表,删除链表的倒数第。

优快云 1303

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

刷题神器:LeetCode官方网站 一、题目还原 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 二、解题思路 ① 扫描链表,获...

郎才女喵的博客 223

LeetCode-19. 删除链表的倒数第N个节点-Java实现

题目链接 题目 结果 运行效果如下: 代码如下: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { ...

ws948342046的博客 364

leetcode--删除链表的倒数第N个节点(java)

2.让指针2从头开始和指针1一起走,当指针1走完。指针2来到k-n位置,就是要删除的节点。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。删除倒数第N 个点,N 小于等于链表的长度,假设链表总厂K。输入:head = [1,2,3,4,5], n = 2。我们要删除的位置就是K - N 的位置上的节点。输入:head = [1,2], n = 1。1.先让指针1走K 步,链表还剩K-n 步。输入:head = [1], n = 1。输出:[1,2,3,5]链表中结点的数目为 sz。

SP_1024的博客 2163

Leetcode19 删除链表的倒数第N个节点 C++,Java,Python

Leetcode19 删除链表的倒数第N个节点 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例 1: ...

Rp的博客 269

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

# LeetCode 100题题解(JAVA) 19. 删除链表的倒数第 N 个结点 文章目录# LeetCode 100题题解(JAVA) 19. 删除链表的倒数第 N 个结点前言一、题目描述二、解题思路1. 分清预先指针,头结点2.双指针的使用要熟练,前指针,后指针3.代码如下总结 前言 提示:简单记录一下答案和思路,主要整理自LeetCode。 提示:以下是本篇文章正文内容,下面案例可供参考 简单记录一下答案和思路。 一、题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结

vitodew的博客 297

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

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

热爱编程、热爱生活、热爱探索 1083

【链表】LeetCode #19 删除链表的倒数第N个节点(时间复杂度O(n),在所有Java提交中击败了100%的用户)

题目链接: LeetCode #19 删除链表的倒数第N个节点 题目描述: #19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 通过次数205,209 提交次数524,857 分析: 这个题的难度在于如何在一趟

Code_Yilia的博客 319

LeetCode第二天之《19删除链表倒数第n个节点》

LeetCode19 删除链表倒数第n个节点 题目描述 给定一个链表,删除链表中的倒数第n个节点,并且返回链表的头节点 说明:给定的n保证是有效的 提示:双指针 注意:是倒数第n个节点 进阶:使用一趟遍历扫描实现 示例 给定一个链表:1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后(值为4),链表变为 1->2->3->5. 解题思路 首先既然是链表,那么自然而然的想到一个删除的逻辑就是找到要删除节点的前一个值(记为pre),然后使用

weixin_44184990的博客 294

《LeetCode力扣练习》第19题 删除链表的倒数第 N 个结点 Java

《LeetCode力扣练习》第19题 删除链表的倒数第 N 个结点 Java 一、资源 题目: 给你一个链表,删除链表的倒数第 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.va

XRT_knives的博客 234

LeetCode——19题:删除链表的倒数第 N 个结点【Java实现】

LeetCode-19题:删除链表的倒数第 N 个结点【Java实现】 前言: 题目: 给你一个链表,删除链表的倒数第 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] 分析 【1】首先我们对特殊情况进行分析:如果当前头结点为空,或者当前链表只有一个元素(删完就为空)

weixin_45565886的博客 563
上一篇: java实现多文件上传并保存到数据库
yuxi64
博客等级 码龄12年 7粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值