剑指 Offer 22. 链表中倒数第k个节点

news2024/11/28 7:49:42

剑指 Offer 22. 链表中倒数第k个节点

题目

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。

例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。

示例:

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

Java版本答案:

class Solution {
    public ListNode getKthFromEnd(ListNode head, int k) {
        ListNode former = head, latter = head;
        while(former != null && k > 0){
            former = former.next;
            k--;
        }
        
        while(former != null ){
            former = former.next;
            latter = latter.next;
        }
        return latter;
    }
}

题解

核心思想: 不需要知道链表长度,指针1(former)先走k-1步,然后指针2(latter)和指针1同时前进,当指针1指向链表最后一个元素时,指针2即为所求。
在这里插入图片描述

算法流程
初始化: 前指针 former 、后指针 latter ,双指针都指向头节点 head​ 。

构建双指针距离: 前指针 former 先向前走 k-1 步(结束后,双指针 former 和 latter 间相距 k-1步)。

双指针共同移动: 循环中,双指针 former 和 latter 每轮都向前走一步,直至 former 走到链表 尾节点 时( latter 与尾节点距离为 k-1,即 latter 指向倒数第 k 个节点)。

返回值: 返回 latter 即可。

复杂度分析:
时间复杂度 O(N) 空间复杂度 O(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于R的Bilibili视频数据建模及分析——聚类分析篇

基于R的Bilibili视频数据建模及分析——聚类分析篇 文章目录基于R的Bilibili视频数据建模及分析——聚类分析篇0、写在前面1、数据分析1.1 聚类分析1.2 聚类统计1.3 系统聚类1.4 Kmeans与主成分分析2、参考资料0、写在前面 实验环境 Python版本:Python3.9Pycharm版本…

python打包windows服务 开机自启动守护进程

自启动方法一:系统自启动设置python程序开机自启动1、创建一个xxx.bat文件,右键编辑2、在xxx.bat文件里面写入以下内容后保存:(可以按照如下流程自己去cmd中测试一下)d: #如果需要开机自启动的python程序在c盘&#xf…

Typora插图免费上传云端教程(太香了)

1、前言 我们平时在使用Typora时,文档中的图片一般是保存在本地,很方便,但是有些场景也有问题,比如我全部拷贝到有道云笔记中或者全部拷贝到CSDN中去发布时,你会发现,所有图片都无法预览了,此时…

不要为了“分库分表”而“分库分表”

数据库瓶颈 分库分表 分库分表工具 分库分表带来的问题 什么时候考虑分库分表 数据库瓶颈 不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看, 就是可用…

解析HTTP请求报文(GET、POST)

目的: 一个WEB服务器需要解析客户端(浏览器)发来的请求,两种常见的请求方式是GET和POST。 GET的请求格式: GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上一个"?"的后面,参数以…

时序图文献精度——1.2018-KDD-Embedding Temporal Network via Neighborhood Formation

Embedding Temporal Network via Neighborhood Formation Abstract 作者发现,在现有的研究中,以节点间顺序交互事件为特征的网络的完整时间形成过程还很少被建模,在这边文章中,作者引入邻域形成序列的概念来描述节点的演化&…

第四篇 - 对象的深层劫持

一,前言 上篇,主要介绍了在 Vue 的数据初始化流程中,对象属性的单层劫持是如何实现的 回顾一下,主要涉及以下几个核心点: data 为函数和对象的处理,及当 data 为函数时的 this 指向问题Observer 类&…

一文弄清楚vue中的computed和methods

1.实现业务我们现在需要实现一个业务,就是我们有一个输入框,之后我们修改输入框的值,就在此时输入框的值会呈现到页面中的h1标签上去2.利用Vue中的插值语法实现业务2.1什么是插值语法?插值语法就是vue中用来存放预留值得方法&…

【前端】CSS盒子模型

五、盒子模型 1.1盒子模型的介绍 盒子的概念 页面中的每一个标签,都可看做是一个“盒子”,通过盒子的视角方便的进行布局浏览器在渲染(显示)网页时,会奖网页中的元素看作是一个个的矩形区域,我们也形象地…

<Python的函数(1)>——《Python》

目录 1. 函数 2. 语法格式 2.1 创建函数/定义函数 ​2.2 调用函数/使用函数 3. 函数参数 4. 函数返回值 5. 变量作用域 后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教&…

Android input 事件分发 -- inputReader

inputReaderinputReaderinputReader 这个章节主要是围绕inputReader 、inputReaderThread进行的,老规矩先上时序图通过前面我们已经知道了InputReader和InputReaderThread都是在InputManager的构造函数里面new出来的,然后InputReaderThread的启动是在Sys…

图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航

最近在工作中用到了 Hbase 这个数据库,也顺便做了关于 Hbase 的知识记录来分享给大家。其实 Hbase的内容体系真的很多很多,这里介绍的是小羽认为在工作中会用到的一些技术点,希望可以帮助到大家。 可以这么说互联网都是建立在形形色色的数据…

剑指offer----C语言版----第十天

目录 1. 二进制中 1 的个数 1.1 题目描述 1.2 可能引起错误的解法 1.3 常规解法 1.4 思路优化 1. 二进制中 1 的个数 原题链接: 剑指 Offer 15. 二进制中1的个数 - 力扣(LeetCode)https://leetcode.cn/problems/er-jin-zhi-zhong-1de-ge-shu-lcof…

电路方案分析(十五)符合 EMC 标准的汽车制动灯和尾灯设计方案

符合 EMC 标准的汽车制动灯和尾灯设计方案 tips:TI设计方案参考分析:TI Designs:TIDA-01374 1.系统描述 1.1关键参数 2.系统概述 2.1系统框图 2.2关键元器件 3.设计原理 3.1双重亮度设计 3.2 电荷泵设计 3.4 LED故障设计 3.3 MOSFET驱动电…

LeetCode Hot 100 笔记

文章目录链表21. 合并两个有序链表栈20. 有效的括号Java栈链表 链表的题目一般都不太难,画图,别怕麻烦 21. 合并两个有序链表 解法一:迭代 用一个指针cur跟踪当前节点,每次从list1和list2中选取小的节点,链接起来建…

什么是轻量化,轻量化模型is all your need hhh

其实学了几个小月,我们肯定知道,MLP有多deeper ,卷积层有多少层呀 抑或是Transformer架构,大量的参数,只能用huge 来描述, 可实际上我们的设备,有时候并没有服务器那么厉害,所以人…

阿里云认证为什么那么多人考?考试内容难不难?

我国人口密集,每年有大量的毕业生涌进社会,除此之外还有很多进入社会很久的打工人,想要跳槽,到更加挣钱的岗位,待遇更好的公司去。为了能够早日买房、买车,很多人会选择社会热门行业去学习,甚至…

sqli-labs 第七关 多命通关攻略

sqli-labs 第七关 多命通关攻略描述字符串与数值之间的转换判断注入类型返回结果正常输入不正常输入错误输入总结判断注入类型判断是否为字符型注入判断是否为单引号字符型注入判断是否为双引号字符型注入判断是否为数值型注入总结判断注入类型(修正版)字…

二十六、Docker (2)

🌻🌻 目录一、Docker的常用命令 (阶段A)1.1 帮助命令1.2 镜像命令1.3 容器命令1.3.1 新建容器并启动1.3.2 列出所有运行的容器1.3.3 退出容器1.3.4 删除容器1.3.5 启动和停止容器的操作1.4 常用的其它命令1.4.1 后台启动容器1.4.2 查看日志1.4.3 查看容器…

如何搭建私域流量?

如今已经进入存量用户时代,越来越多的企业也明白了存量用户的重要性,因此企业都非常重视私域流量的搭建,以挖掘客户的价值。 前言 如今已经进入存量用户时代,越来越多的企业也明白了存量用户的重要性,因此企业都非常重…