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

刷题——链表中倒数最后k个结点

描述

输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。

如果该链表长度小于k,请返回一个长度为 0 的链表。

数据范围:0≤𝑛≤1050≤n≤105,0≤𝑎𝑖≤1090≤ai​≤109,0≤𝑘≤1090≤k≤109

要求:空间复杂度 𝑂(𝑛)O(n),时间复杂度 𝑂(𝑛)O(n)

进阶:空间复杂度 𝑂(1)O(1),时间复杂度 𝑂(𝑛)O(n)

示例1

输入:{1,2,3,4,5},2

复制返回值:{4,5}

示例2

输入:{2},8

复制返回值:{}

方法一:入栈出栈


class Solution {
public:ListNode* FindKthToTail(ListNode* pHead, int k) {// write code hereif(pHead == NULL || k == 0) return NULL;stack<ListNode*> stack;while(pHead != NULL){stack.push(pHead);//不断入栈pHead = pHead->next;}if(stack.size() < k) return NULL;ListNode *firstNode = NULL;while(--k >= 0){firstNode = stack.top();stack.pop();}return firstNode;}
};

方法二:快慢指针法,fast先走k,slow后跟,之间距离+1,就是要得到的倒数k

ListNode* FindKthToTail(ListNode* pHead, int k) {// write code hereListNode* fast = pHead;ListNode* slow = pHead;//快指针先行k步for(int i=0; i<k;i++){if(fast != NULL) fast = fast->next;else slow = NULL;}while(fast != NULL){fast = fast->next;slow = slow->next;}return slow;}

相关文章:

  • 什么是隐马尔可夫模型?
  • 【第5章】Stable Diffusion大模型(简介/两种版本/安装/模型推荐/使用方式)ComfyUI基础入门教程
  • 【Vue3】使用v-model实现父子组件通信(常用在组件封装规范中)
  • Part 4.2 背包动态规划
  • 适用于 macOS 的最佳免费数据恢复软件
  • 浏览器必装插件推荐:最新版Simple Allow Copy,解除网页复制限制!
  • Arcgis投影问题
  • 在mysql中GROUP_CONCAT字段的作用
  • vivado PIN
  • Adam优化算法
  • 找工作小项目:day16-重构核心库、使用智能指针(2)
  • 数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践
  • go 定时任务
  • 多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)C++
  • 苏州辰安塑业携塑料托盘、塑料物流箱解决方案亮相2024杭州快递物流展
  • 【前端学习】-粗谈选择器
  • Angularjs之国际化
  • Javascript弹出层-初探
  • JavaScript学习总结——原型
  • JavaWeb(学习笔记二)
  • jquery ajax学习笔记
  • JS笔记四:作用域、变量(函数)提升
  • Magento 1.x 中文订单打印乱码
  • maven工程打包jar以及java jar命令的classpath使用
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Promise面试题,控制异步流程
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • spring security oauth2 password授权模式
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 手机端车牌号码键盘的vue组件
  • 移动端唤起键盘时取消position:fixed定位
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 【云吞铺子】性能抖动剖析(二)
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​Java基础复习笔记 第16章:网络编程
  • ​ubuntu下安装kvm虚拟机
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ​香农与信息论三大定律
  • # 安徽锐锋科技IDMS系统简介
  • ## 基础知识
  • #传输# #传输数据判断#
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (04)odoo视图操作
  • (2)空速传感器
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (第二周)效能测试
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (回溯) LeetCode 131. 分割回文串
  • (三)c52学习之旅-点亮LED灯
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (十七)Flink 容错机制
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?