链表中倒数第k个结点 — C++实现
发布日期:2021-10-02 06:27:39 浏览次数:3 分类:技术文章

本文共 618 字,大约阅读时间需要 2 分钟。

题目描述

输入一个链表,输出该链表中倒数第k个结点。

解题思路

直接思路是遍历链表,遍历的时候压栈,遍历完后出栈,倒数出k个就行。但这样肯定是拿不到Offer的。

可以这么做,拿两个指针从头遍历,让一个先走k-1步,然后两个指针再一起走,当先走的指针遍历到尾结点时,后走的那个即为所求。

有几个点需要注意:

  • 输入空链表的处理
  • k0的情况
  • k大于链表的长度

代码实现

class Solution {
public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if(!pListHead||k==0)return NULL; ListNode *p,*q; p=pListHead; for(unsigned int i=0;i
next; }else{
return NULL; } } q=pListHead; while(p){
p=p->next; q=q->next; } return q; }};
运行时间:2ms占用内存:376k

转载地址:https://blog.csdn.net/Jeaten/article/details/108312970 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:链表中环的入口结点 — C++实现
下一篇:调整数组顺序使奇数位于偶数前 — C++实现

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月26日 06时24分49秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

LeetCode-122. 买卖股票的最佳时机 II(Goland实现) 2019-04-27
LeetCode-136. 只出现一次的数字(Goland实现) 2019-04-27
go-递归实现二叉树的三种排序方式(前序、中序、后序)【详细】 2019-04-27
LeetCode-409. 最长回文串(Goland实现) 2019-04-27
LeetCode-LCP 18. 早餐组合(Goland实现) 2019-04-27
PDF - 如何 PDF 文档在全屏模式同时显示两页 2019-04-27
区块链 - 什么是区块链?这是我见过的最通俗易懂的解释 2019-04-27
区块链 - 侠客岛:终于有人把区块链讲清楚了 2019-04-27
PPT - 如何从 PowerPoint 幻灯片中删除幻灯片编号 2019-04-27
正则表达式 - 匹配任何字符(包括换行符) 2019-04-27
程序人生 - 5G来了!路由器和移动硬盘危险了? 2019-04-27
JS - mescroll.js 下拉刷新使用时应该注意的问题(卡顿,滑不动) 2019-04-27
赚钱 36 计 - 第十五计:扣点计 2019-04-27
赚钱 36 计 - 第十六计:生态计 2019-04-27
赚钱 36 计 - 第十九计:传媒计 2019-04-27
DOS - 批处理之 for /f 中的 delims 和 tokens 2019-04-27
程序人生 - 如何通过劳动仲裁拿到应该的补偿——程序员的维权之路 2019-04-27
Java - java.util.ConcurrentModificationException 异常原因及解决方法 2019-04-27
医学小知识 - 胶囊胃镜一次多少钱?有什么缺点?和普通胃镜有什么区别? 2019-04-27
Java - java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap 2019-04-27