[Leetcode] 19. 删除链表的倒数第N个节点

2023-11-08

题目描述:

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

示例:

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

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

说明:

给定的 n 保证是有效的。

进阶:

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

解题思路:

 

第一步:

 

第二步:

 

代码实现(Java语言):

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    //两次遍历解决问题
    public ListNode removeNthFromEnd2(ListNode head, int n) {
        if(head == null)
            return null;
        if(head.next == null)
            return n==1?null:head;
        int count  = 0;
        ListNode tHead = head;
        while(tHead != null){
            count++;
            tHead = tHead.next;
        }
        int num = count - n;
        count = 1;
        tHead = head;
        while(count != num){
            count++;
            tHead = tHead.next;
        }
        tHead.next = tHead.next.next;
        return head;
    }
    //一次遍历解决问题
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode forward = head,backward = head;
        for(int i=0;i<n;i++){
            forward = forward.next;
        }
        if(forward == null){    //  走到头了,说明删除的是链表第一个元素
            return head.next;
        }
        while(forward.next != null){
            forward = forward.next;
            backward = backward.next;
        }
        backward.next = backward.next.next;
        return head;
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Leetcode] 19. 删除链表的倒数第N个节点 的相关文章

  • getset_descriptor

    What is the dict dict attribute of a Python class up vote 43 down vote favorite 23 gt gt gt class A object pass gt gt gt
  • 第六章 Hystrix断路器详解+环境搭建

    目录 一 Hystrix的背景及介绍 1 分布式系统面临的问题 2 解决方案 3 Hystrix介绍 4 Hystrix服务熔断 二 搭建项目基础环境 1 创建 父工程及公共api 见 第三章 2 创建 Eureka 服务 见 第三章 3
  • c语言宏定义唯一匿名变量,C语言宏定义技巧

    写好C语言 漂亮的宏定义很重要 使用宏定义可以防止出错 提高可移植性 可读性 方便性 等等 下面列举一些成熟软件中常用得宏定义 1 防止一个头文件被重复包含 ifndef COMDEF H define COMDEF H 头文件内容 end
  • MySQL/MariaDB 查询某个 / 多个字段重复数据

    创建测试表和数据 创建表 create table if not exists t duplicate name varchar 255 not null age int not null 插入测试数据 insert into t dupl
  • Pat刷题真题乙级(4)

    标题 前言 Pat乙级1013 组个最小数 Pat乙级1014 科学计数法 Pat乙级1017 打印沙漏 Pat乙级1018 人口普查 Pat乙级1019 旧键盘 前言 这个周末花了两天才写了五道题 嘿嘿 康康吧 Pat乙级1013 组个最
  • Vscode跳板机和通过代理连接远程服务器设置方法

    文章目录 一 VScode跳板机配置 1 ssh安装 config文件配置 二 通过代理连接远程服务器设置方法 本文适用于windows系统 linux系统可以适当参考 主要包括两方面的内容 1 通过跳板机连接远程服务器或远程服务器上的容器
  • Python统计模型探索性数据分析(EDA)系统(单变量-双变量-相关性-缺失值)

    单变量分析 单变量分析旨在更深入地了解单个列 它创建该列的各种统计数据和可视化 例如 要深入了解 特征 year built 要计算year built 的最小值 最大值 不同计数 中值 方差 并创建一个箱线图来检查异常值 一个正常的 Q
  • vsocde使用命令行上传项目到GitHub

    文章目录 前言 一 git init初始化 二 git status查看状态 三 git remote add origin连接远程仓库 四 git add添加文件 五 git commit文件 六 git push 刷到远程仓库 前言 链
  • 合宙Air724UG LuatOS-Air LVGL API控件--进度条 (Bar)

    进度条 Bar Bar 是进度条 可以用来显示数值 加载进度 示例代码 创建进度条 bar lvgl bar create lvgl scr act nil 设置尺寸 lvgl obj set size bar 200 20 设置位置居中
  • Vite 配置 cdn 加载资源

    一 介绍 上篇文章我们从零配置 Vite Vue3 0 开发环境 生产环境 本篇文章我们配置 CDN 加载 因为 Vite 不会重写从外部文件导入的内容 我们需要使用支持 ESM 编译的 CDN 这里我们使用 https esm sh 来引
  • GDCM:GDCM::DataSet的测试程序 C/C++

    GDCM GDCM DataSet的测试程序 C C GDCM Grassroots DICOM 是一个用于处理医学影像和通信的开源软件库 它提供了各种功能 包括读取 写入 转换和处理DICOM 数字影像和通信医学 文件 GDCM库是用C
  • DGL-KE:亚马逊开源知识图谱嵌入库

    这个库的开源已经是去年 2020 的事情了 突然感觉时间好快 当时并没有在意 最近关注到这个库是因为自己在训练知识图谱 Embedding 的时候做的一些调研 考虑到后续大规模知识图谱的训练 需要更快的开源库 于是DGL KE 重新回到我的
  • Spring(二):更简单的存储与读取 Bean

    通过上一章的Spring 我们基本实现了Spring 的读取与存储 但是在操作过程中 读取与存储并没有那么得 简单 一套流程还是很复杂 所以 本章来介绍更加简单得读取与存储 在 Spring 中想要更简单的存储和读取对象的核 是使 注解 也
  • Zabbix 5.0 媒体介质 邮箱配置例子

    QQ企业邮箱 参考 zabbix 腾讯企业邮箱配置图 harveymomo的博客 CSDN博客
  • 程序和功能 没有hyper v_Win10系统hyper-v虚拟机如何关闭?这三种方法麻烦收好

    hyper v很多用户不清楚这是什么 用官方说法是微软的一款虚拟化产品 简单来说就是虚拟机 可以用来安装其他系统 这个功能在Win10和Win8 1中是预设的 对于Win10用户而言此项功能没有多少必要性 那么要如何关闭呢 下面小编就跟大家
  • 求二叉树中最大和的路径(C语言实现)

    目录 1 题目概述 2 题目解析 3 题目代码 4 样例展示 5 题目总结 1 题目概述 假设二叉树中的所有节点值为int类型 采用二叉链表存储 设计递归算法求二叉树bt中从根结点到叶子结点路径和最大的一条路径 例如 对于下图所示的二叉树
  • 成为大厂offer收割机是怎样一种体验?

    一 现状 市场红利正盛 人才短板暴露 计算机的发展历程已经走过了大半个世纪 在当前的互联网 时代下 中国开发者市场正在迎来三大红利 全民编程 行业升级 技术大生态 人人都会编程 家家都是技术公司 全行业数字化升级 面对大量的需求 目前IT人
  • 用户画像常见应用场景+技术实现

    导读 今天和大家分享的主题是用户画像的场景与技术实现方案 主要分三大部分 用户画像常见应用场景 画像产品功能 技术实现方案 01 常见应用场景 1 画像常见的应用场景 不同行业业务属性不同 能采集到的数据源也不同 对画像的应用场景有不同的需

随机推荐

  • 代码随想录算法训练营第一天

    文章目录 数组704 二分查找 题目 难度 示例 算法 二分查找法 循环不变量 两种写法 疑难点分析 算法复杂度分析 数组27 移除元素 题目 难度 示例 算法 暴力 双指针 数组704 二分查找 梦开始的地方 day1 2023 4 19
  • 基于MATLAB的图片中字符的分割与识别

    基于MATLAB的字符的分割与识别 摘 要 本文主要介绍字符识别的基本原理 并且利用MATLAB工具软件实现图片中字符的分割和识别 对于满足一定要求的图片可以实现字符的分割与识别 通过图像读取 图像预处理 图像投影 字符分割 字符识别五个步
  • 一维数组部分实验

    学习目标 1 理解数组的概念 掌握数组的定义及其存储结构 2 掌握一维数组的输入 输出及初始化的方法 3 掌握一维数组的使用 4 掌握与数组有关的算法 学习内容 1 编写程序 将10个整型数2 4 6 18 20赋予一个数组 然后输出该数组
  • 【C语言】初识指针

    C语言 初识指针 一 指针是什么 二 指针和指针类型 1 指针 整数 2 指针的解引用 三 野指针 1 野指针成因 2 如何规避野指针 四 指针运算 五 二级指针 七 指针数组 个人主页 库库的里昂 CSDN新晋作者 欢迎 点赞 评论 收藏
  • c的按位取反运算符(~) 与逻辑逻辑(!)

    位运算 位运算的运算分量只能是整型或字符型数据 位运算把运算对象看作是由二进位组成的位串信息 按位完成指定的运算 得到位串信息的结果 位运算符有 按位与 按位或 按位异或 按位取反 其中 按位取反运算符是单目运算符 其余均为双目运算符 位运
  • ffmpeg 采集音频数据

    音视频数据采集的步骤 设备注册 设置对应的采集方式 avfoundation dshow alas 打开设备 具体的例子 include
  • 什么是导航与位置服务器,GPS导航和GPS定位仪与GPS定位器的区别在哪?

    也许很多人时常都能听到GPS定位器 GPS导航 GPS定位仪这三个词 但都不是很了解GPS定位器 GPS导航和GPS定位仪这三者间的区别 往往都很模糊 那么 这三者到底分别是什么设备 又有哪些我们不知道的区别呢 一 GPS导航 但凡是自己有
  • 学成在线笔记+踩坑(2)——【内容模块】课程基础查询,swagger+数据库字典+Httpclient+跨域

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 java黑马笔记 目录 1 内容模块 需求分析 2 内容模块 模块工程
  • jdbc链接mysql8的url

    jdbc链接mysql8的url 使用jar或者maven依赖不同 java与mysql8 0连接Jdbc驱动的配置参数 驱动 driver com mysql cj jdbc Driver 字符串 jdbc url jdbc mysql
  • redis 缓存击穿 看一篇成高手系列3

    什么是缓存击穿 在谈论缓存击穿之前 我们先来回忆下从缓存中加载数据的逻辑 如下图所示 因此 如果黑客每次故意查询一个在缓存内必然不存在的数据 导致每次请求都要去存储层去查询 这样缓存就失去了意义 如果在大流量下数据库可能挂掉 这就是缓存击穿
  • 自己实现c++ list模板类,亲测可用

    双向链表模板类 dlist h ifndef DLIST H define DLIST H include
  • 秋招-准备计划

    秋招 准备计划 基本信息 时间 9月 10月 岗位 java后端开发 目标 中厂 大厂 有高用户量的项目 企业优先 准备 简历 基本信息 获奖情况 项目经历 实习经历 笔试 算法与数据结构 面试 Java篇 基本知识 JVM JUC多线程
  • SQLserver分页 高效率

    SQL Server 存储过程的分页 这个问题已经讨论过几年了 很多朋友在问我 所以在此发表一下我的观点建立表 CREATE TABLE TestTable ID int IDENTITY 1 1 NOT NULL FirstName nv
  • 什么是云计算,云计算的基本原理是什么?

    云计算 cloudcomputing 分布式计算技术的一种 其最基本的概念 是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序 再交由多部服务器所组成的庞大系统经搜寻 计算分析之后将处理结果回传给用户 透过这项技术 网络服务提供者可
  • 在偏远乡村感受中国电信优厚服务

    春节期间 笔者在家使用中国电信天翼上网卡的过程中发现 目前中国电信的3G网络覆盖在偏远乡村还不是很到位 不过在3G市场的激烈竞争中 运营商的服务意识却有着明显的提升 笔者从北京回家过年 在江西南昌市的一家电信营业厅购买了3G上网卡 当时得知
  • Vue3引用Dplayer播放器播放m3u8,hls播放协议

    一 安装 npm安装Dplayer npm install S Dplayer yarn安装Dplayer yarn add Dplayer 播放协议为 hls 安装hls npm install hls js S 二 代码 我用的是vue
  • sed 命令的高级用法

    编辑命令 d 删除 p 显示模式空间的内容 a text 在行后面追加文本 支持使用 n实现多行追加 i text 在行前面插入文本 支持使用 n实现多行插入 c text 替换行为单行或多行文本 w path to somefile 保存
  • 查看服务器信息

    1 查看 CPU 物理个数 grep physical id proc cpuinfo sort u wc l 2 查看 CPU 核心数量 grep core id proc cpuinfo sort u wc l 3 查看 CPU 线程数
  • MATLAB教学_09影像处理二

    本文视频地址 https www bilibili com video av68228488 p 9 主要学习了初阶影像处理 有三个内容 图像阈值 背景预测 相关连的标签 计算米粒颗数 先将图片二值化 那么有米粒的区域应该是1 而没有的地方
  • [Leetcode] 19. 删除链表的倒数第N个节点

    题目描述 给定一个链表 删除链表的倒数第 n 个节点 并且返回链表的头结点 示例 给定一个链表 1 gt 2 gt 3 gt 4 gt 5 和 n 2 当删除了倒数第二个节点后 链表变为 1 gt 2 gt 3 gt 5 说明 给定的 n