
【剑指Offer】链表中倒数第k个结点
发布日期:2022-02-10 08:55:12
浏览次数:9
分类:技术文章
本文共 982 字,大约阅读时间需要 3 分钟。
题目描述
输入一个链表,输出该链表中倒数第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年03月18日 06时52分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
最新文章
iOS远程通知相关
2020-01-13 08:27:13
iOS开发者账号相关
2020-01-13 08:27:13
iOS10适配
2020-01-13 08:27:13
UICollectionView拾遗
2020-01-13 08:27:14
UIViewController相关
2020-01-13 08:27:14
自定义UICollectionView布局
2020-01-13 08:27:14
Mosaic布局(类似于瀑布流)
2020-01-13 08:27:14
Networking with URLSession二 上传&下载
2020-01-13 08:27:14
Text Kit入门——Beginning Text Kit
2020-01-13 08:27:09
Text Kit进阶——Intermediate Text Kit
2020-01-13 08:27:09
CoreText入门
2020-01-13 08:27:09
AVFoundation编程指南-使用 Assets
2020-01-13 08:27:09
使用AVFoundation来录音并播放
2020-01-13 08:27:09
iOS网络——身份认证
2020-01-13 08:27:10
iOS网络——socket
2020-01-13 08:27:10
ReactiveCocoa
2020-01-13 08:27:10
iOS第三方——SMPageControl
2020-01-13 08:27:10
iOS第三方——JazzHands
2020-01-13 08:27:10
FMDB使用
2020-01-13 08:27:10
点击HTML的图片来预览图片
2020-01-13 08:27:11