当前位置: 首页 > news >正文

2025年- H29-Lc137- 19.删除链表的倒数第N个节点(快慢指针)---java版

1.题目描述

在这里插入图片描述

2.思路

快慢指针都在虚拟头节点,然后让快指针先走n+1步,接下来,快慢指针以前移动,直到快指针指向null,慢指针指向被删节点的前一个节点。
在这里插入图片描述

3.代码实现

方法一:不带测试用例

/*** Definition for singly-linked list.* public 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) {//1.创建一个虚拟头节点,虚拟头节点的指针指向第一个节点ListNode dummyhead = new ListNode(0);dummyhead.next=head;//2.快慢指针都从虚拟头节点出发ListNode fast = dummyhead;ListNode slow = dummyhead;//3.让快指针先走n+1步for (int i = 0; i <= n; i++) {fast = fast.next;}//4.快慢指针同时移动,直到快指针指向空的时候停止while(fast!=null){fast=fast.next;slow=slow.next;}//此时把倒数前n+1节点的指针,指向最后一个节点slow.next=slow.next.next;return dummyhead.next;}
}

方法2:带测试用例

class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) { this.val = val; }ListNode(int val, ListNode next) { this.val = val; this.next = next; }}
public class H19 {public ListNode removeNthFromEnd(ListNode head, int n) {//1.创建一个虚拟头节点,虚拟头节点的指针指向第一个节点ListNode dummyhead = new ListNode(0);dummyhead.next=head;//2.快慢指针都从虚拟头节点出发ListNode fast = dummyhead;ListNode slow = dummyhead;//3.让快指针先走n+1步for (int i = 0; i <= n; i++) {fast = fast.next;}//4.快慢指针同时移动,直到快指针指向空的时候停止while(fast!=null){fast=fast.next;slow=slow.next;}//此时把倒数前n+1节点的指针,指向最后一个节点slow.next=slow.next.next;return dummyhead.next;}public static void main(String[] args){H19 test=new H19();ListNode node5=new ListNode(5,null);ListNode node4=new ListNode(4,node5);ListNode node3=new ListNode(3,node4);ListNode node2=new ListNode(2,node3);ListNode head=new ListNode(1,node2);ListNode result=test.removeNthFromEnd(head,2);System.out.print("删除链表的倒数第N个节点:");while(result!=null)//当前的result不为空{System.out.print(result.val);//取值if(result.next!=null)//if是有限次循环,如果用while则会陷入无限循环{System.out.print("->");}result=result.next;}}}

文章转载自:
http://boswellize.jopebe.cn
http://antiworld.jopebe.cn
http://asterisk.jopebe.cn
http://chairborne.jopebe.cn
http://asthmatic.jopebe.cn
http://allopatrically.jopebe.cn
http://arraign.jopebe.cn
http://alastrim.jopebe.cn
http://asu.jopebe.cn
http://avestan.jopebe.cn
http://angelic.jopebe.cn
http://beneficed.jopebe.cn
http://capercaillie.jopebe.cn
http://catholic.jopebe.cn
http://adobe.jopebe.cn
http://abuse.jopebe.cn
http://celebration.jopebe.cn
http://atamasco.jopebe.cn
http://caliology.jopebe.cn
http://charleston.jopebe.cn
http://babbittry.jopebe.cn
http://amperemeter.jopebe.cn
http://bikky.jopebe.cn
http://annoying.jopebe.cn
http://beret.jopebe.cn
http://admittedly.jopebe.cn
http://childishly.jopebe.cn
http://blowzed.jopebe.cn
http://cabas.jopebe.cn
http://acaulescent.jopebe.cn
http://www.dtcms.com/a/198446.html

相关文章:

  • STC89C52单片机模拟洗衣机源代码程序 C语言程序 按键设置洗衣模式和洗衣时间 洗衣完成后语音报警提示
  • 机器学习(11)——xgboost
  • JavaScript 中的 Window 对象详解
  • 超越想象:利用MetaGPT打造高效的AI协作环境
  • 1_Spring 【IOC容器的创建】
  • deepseek手动实现一个Spring Starter具体方案
  • 【2025版】SpringCloud Gateway网关快速入门
  • 系统启动时开启选择内核菜单
  • 【内存分配】
  • Python 向量化操作如何实现多条件筛选
  • 双列集合——HashMap,LinkedHashMap,TreeMap基本介绍
  • 聚类算法K-means和Dbscan的对比
  • React Native打包报错: Task :react-native-picker:verifyReleaseResources FAILE
  • 《Python星球日记》 第88天:ChatGPT 与 LangChain
  • 心理学层次结构
  • java中的Servlet2.x详解
  • 基于LabVIEW的双音多频系统设计
  • 【PINN】DeepXDE学习训练营(27)——pinn_forward-diffusion_1d_resample.py
  • 游戏:英雄联盟游戏开发代码(谢苏)
  • c++从入门到精通(六)--特殊工具与技术-完结篇
  • leetcode hot100刷题日记——1.两数之和
  • 中文分词与数据可视化03
  • restTemplate
  • 深入解析Spring Boot与Spring Cloud在微服务架构中的实践
  • 什么是dom?作用是什么
  • FreeRTOS的学习记录(临界区保护,调度器挂起与恢复)
  • 利用Shp裁剪nc数据
  • 十一、STM32入门学习之FREERTOS移植
  • 最新缺陷检测模型:EPSC-YOLO(YOLOV9改进)
  • RabbitMQ 工作模式(上)