news 2026/5/6 16:55:47

02.02、返回倒数第 k 个节点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
02.02、返回倒数第 k 个节点

02.02、[简单] 返回倒数第 k 个节点

1、题目描述

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

2、题解思路

本题的关键在于使用双指针法,通过两个指针(fastslow),让fast指针比slow指针先走k步,这样当fast到达链表末尾时,slow正好指向倒数第k个节点。

具体步骤如下:

  1. 初始化两个指针fastslow,都指向链表的头节点。
  2. fast先走k步,使得fastslow之间的距离为k
  3. 同时移动fastslow,直到fast到达链表的末尾。
  4. 此时,slow指针所指向的节点就是倒数第k个节点,返回该节点的值。

3、详细代码解析

class Solution { public: int kthToLast(ListNode* head, int k) { // 初始化两个指针,分别指向链表的头节点 ListNode* fast = head; ListNode* slow = head; // 让 fast 指针先走 k 步 while (k--) { fast = fast->next; } // 同时移动 fast 和 slow,直到 fast 到达链表的末尾 // 当 fast 到达链表末尾时,slow 则正好指向倒数第 k 个节点,返回该节点的值 while (fast) { fast = fast->next; slow = slow->next; } // slow 现在指向倒数第 k 个节点,返回该节点的值 return slow->val; } };

4、时间复杂度与空间复杂度

通过使用双指针技巧,我们可以在一次遍历中高效地找到倒数第k个节点。这个解法在不需要额外空间的情况下,能够很好地解决问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 3:57:38

Java集成OpenAI API:kousen/OpenAIClient增强库实战指南

1. 项目概述与核心价值最近在折腾一些AI应用集成,发现很多开源项目在调用OpenAI的API时,代码写得相当“随性”。要么是把API Key硬编码在脚本里,要么是错误处理简陋得让人心惊胆战,再要么就是缺乏重试、流式处理这些生产环境必备的…

作者头像 李华
网站建设 2026/5/5 3:53:28

跨模态船舶重识别:结构感知一致性学习框架解析

1. 项目背景与核心挑战船舶重识别技术是海事监管、港口调度和海上搜救等领域的关键支撑。传统基于可见光图像的船舶识别方法容易受到天气条件(如雾霾、阴雨)和光照变化的干扰,而合成孔径雷达(SAR)具有全天候、全天时的…

作者头像 李华
网站建设 2026/5/5 3:50:28

深度学习驱动的3D室内场景自动生成技术解析

1. 项目概述:当3D生成遇到室内设计SPATIALGEN是我最近完成的一个实验性项目,它本质上是一个基于深度学习的三维室内场景生成系统。与传统3D建模工具不同,这个框架能够根据用户输入的简单布局参数(如房间尺寸、门窗位置&#xff09…

作者头像 李华
网站建设 2026/5/5 3:48:26

10个awesome-swift代码片段:提高开发效率的终极指南

10个awesome-swift代码片段:提高开发效率的终极指南 【免费下载链接】awesome-swift A collaborative list of awesome Swift libraries and resources. Feel free to contribute! 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-swift awesome-swift…

作者头像 李华