首页 > 编程语言 >LeetCode 19. 删除链表的倒数第 N 个结点(java)

LeetCode 19. 删除链表的倒数第 N 个结点(java)

时间:2024-11-03 17:44:41浏览次数:3  
标签:head ListNode 示例 19 next 链表 int 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]

代码:

第一种:

递归

public ListNode removeElements1(ListNode head, int n)
    {
         ListNode s=new ListNode(-1,head);
         recursion(s, n);
         return s.next;
    }
    private int recursion(ListNode p, int n){
        if(p == null)
            return 0;
        int nth=recursion(p.next, n); //下一个节点的返回值
        if(nth == n)//p是当前节点
            p.next=p.next.next;
        return nth+1;//当前节点的值
    }

第二种:

 public ListNode removeElements(ListNode head, int n){
        ListNode s=new ListNode(-1,head);
        ListNode p1=s;
        ListNode p2=s;
        for(int i=0;i<n+1;i++){//先让p2走到n+1个位置
            p2=p2.next;
        }
        while(p2!=null){//同时移动
            p1=p1.next;
            p2=p2.next;
        }
        p1.next=p1.next.next;
        return s.next;
    }

标签:head,ListNode,示例,19,next,链表,int,java
From: https://blog.csdn.net/m0_75035023/article/details/143468161

相关文章

  • Java项目练习——学生管理系统
    1.整体结构代码实现了基本的学生管理系统功能,包括登录、注册、忘记密码、添加、删除、修改和查询学生信息。使用了ArrayList来存储用户和学生信息。使用了Scanner类来处理用户输入。2.主要功能模块登录(logIn):验证用户名和密码,支持验证码校验。注册(register):验证......
  • Java阻塞队列
    Java阻塞队列  一、阻塞队列   1. 为什么要用阻塞队列?  在多线程领域,所谓阻塞,是指在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒。  使用阻塞队列能够简化多线程编程,提升程序的性能和可靠性,适应各种并发场景,是实现生产者-消费者模型等......
  • 华为机试HJ19 简单错误记录
    首先看一下题描述开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16......
  • java+vue计算机毕设电商小程序【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代社会不可或缺的一部分。电商小程序作为移动端电商的一种新型形态,凭借其便捷性、即时性和轻量化的特点,迅......
  • java+vue计算机毕设大学校园后勤移动报修系统【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和智能手机的普及,移动应用已成为人们日常生活和工作中的重要组成部分。在大学校园环境中,后勤管理作为保障教学与生活秩序的关......
  • java全栈day07-后端Web基础-Maven基础
    一、什么是MavenMaven是一款用于管理和构建Java项目的工具。作用:(提供jar包,跨平台,不同软件使用(IDEA、Eclipse等))导入jar包方式不同简单来说:(1)方便的依赖管理(2)统一的项目结构(3)标准的项目构建流程二、IDEA集成Maven首先需要配置Maven环境(全局)再创建项目(......
  • java计算机毕业设计城市养老服务预约系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的快速发展,人口老龄化现象日益严重,城市养老服务面临巨大挑战。传统的养老服务方式在服务预约、信息管理等方面存在诸多不便,难以满足老年......
  • Oracle 第19章:高级查询技术
    在Oracle数据库中,高级查询技术是数据库管理员和开发人员必须掌握的重要技能。这些技术能够帮助优化查询性能,简化复杂的查询逻辑,并提高数据处理的效率。本章将重点讨论两个关键概念:子查询和连接与并集操作。子查询定义:子查询(Subquery)是指嵌套在另一个SQL语句中的查询。子......
  • Java 编程:强大的跨平台开发语言
    Java是一种广泛使用的面向对象的编程语言,由SunMicrosystems公司(现已被Oracle公司收购)于1995年发布。Java的设计目标是“一次编写,到处运行”(WriteOnce,RunAnywhere),这使得它成为一种非常强大且灵活的编程语言,尤其适合企业级应用和互联网开发。  Java的特点1.*......
  • JAVA--java的转义字符(6个常用的 DAY 4*拌面版
    前言:今天,我们来了解一下java语言中常用的6个转义字符(最后附有完整代码)------------------------------分割线--------------------------------------OS:记得每次输入新代码要保存并重新编译一下哦~,(而且是要重新打开控制台编译的)源代码如下: 1.\t:一个制表位,实现对齐的功......