【剑指Offer】链表中倒数第k个结点
发布日期:2022-02-10 08:55:12
浏览次数:26
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月11日 04时59分30秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
AtomicInteger 核心源码解析
2019-04-27
Netty源码面试实战+原理(一)-鸿蒙篇
2019-04-27
阿里P8架构师教你Netty源码面试解析实战(二)- 基本组件
2019-04-27
Java中的JList和DefaultListModel的亲密关系
2019-04-27
Java源码解析系列-ThreadLocal(不看血亏)
2019-04-27
MySQL事务隔离级别的最佳实践
2019-04-27
JDK源码解析之AbstractQueuedSynchronizer
2019-04-27
工作量完不成,不996怎么办?
2019-04-27
阿里面试官问Java中init和clinit区别,这么回答offer应该稳了
2019-04-27
maven install时报错The packaging for this project did not assign a file to the build artifact
2019-04-27
Elasticsearch构建商品搜索系统
2019-04-27
使用IDEA内置maven更新依赖jar包
2019-04-27
MacBookPro外接显示器程序全屏状态,另一个显示器就黑屏
2019-04-27
Chrome浏览器黑屏,左上顶角缩放三个按钮消失
2019-04-27
别再纠结Redis/zookeeper,告诉你分布式锁的正确解决方案
2019-04-27
阿里 Sentinel 源码解析
2019-04-27
SpringCloudAlibaba之Sentinel(一)- 实现容错
2019-04-27
SpringCloudAlibaba之Sentinel(一)-Sentinel的由来
2019-04-27