
【剑指Offer】链表中倒数第k个结点
发布日期:2022-02-10 08:55:12
浏览次数:23
分类:技术文章
本文共 1319 字,大约阅读时间需要 4 分钟。
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路
想试着用一下栈,代码1是用栈的写法,代码2是用双指针的写法。
本题也考察鲁棒性,情况得考虑周全,忘了一种k可能等于0的情况。
代码1
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead == NULL || k == 0){ return NULL; } stacks; ListNode* p = pListHead; while(p!=NULL){ s.push(p); p=p->next; } if(s.size() < k){ return NULL; } for(int i = 1;i < k;i++){ s.pop(); } return s.top(); }};
代码2
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead == NULL || k == 0){ return NULL; } ListNode* p1 = pListHead; ListNode* p2 = pListHead; for(int i = 0;i < k;i++){ if(p2 == NULL){ return NULL; } else{ p2=p2->next; } } while(p2!=NULL){ p1=p1->next; p2=p2->next; } return p1; }};
转载地址:https://blog.csdn.net/hanmin822/article/details/105504268 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2023年11月26日 12时52分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
多兵种直瞄武器交战的Lanchester方程
2019-03-28
最优控制中的变分法
2019-03-28
最优控制中极小值原理及其应用
2019-03-28
一个简单的微分对策问题求解及其Matlab实现
2019-03-28
用PyGame实现贪吃蛇游戏
2019-03-28
单兵种对多兵种作战的微分对策模型
2019-03-28
变量提升与函数提升的优先级
2019-03-28
前端请求后端数据显示404
2019-03-28
关键字final 和static
2019-03-28
Java中方法的定义、传参、重载与递归
2019-03-28
Java中的集合框架(JCF)
2019-03-28
Visual Studio 提示“发生生成错误,是否继续并运行上次的成功生成?”解决办法
2019-03-28
二维数组回形遍历 C++
2019-03-28
护林员盖房子 C++
2019-03-28
数字颠倒简单实现
2019-03-28
一类括号匹配问题 POJ
2019-03-28
C++ int类型最大最小数字(16进制)
2019-03-28
二进制数最后n位为1
2019-03-28
rotatebmp-24位 大作业 旋转bmp图像
2019-03-28
A:List 程设c++
2019-03-28