【剑指Offer】【链表】链表中倒数第k个结点
2024-09-08 19:06:59
题目:输入一个链表,输出该链表中倒数第k个结点。
A1:先从头到尾扫描链表,得到链表的总长度n,然后再扫描一次链表,输出n-k+1处的结点 ===> 测试用例超时
A2:创建两个指针,一个遍历链表到k处,若链表已指向空,则返回false
到k处后,进入第二个循环,指针A与指针B一起向后移动,当指针A指向nullptr时返回,结果为指针B指向的结点
因为指针A和指针B一直保持k距离
/*
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 == nullptr) || (k < 1))
{
return nullptr;
}
ListNode* pNodeA = pListHead;
ListNode* pNodeB = pListHead; while (k > 0)
{
if (pNodeA == nullptr)
{
return nullptr;
}
pNodeA = pNodeA->next;
k--;
}
while (pNodeA != nullptr)
{
pNodeA = pNodeA->next;
pNodeB = pNodeB->next;
}
return pNodeB;
}
};
//这个解法,是两个指针距离保持在k-1的,在VS下成功通过,但是在牛客编辑器中说有段错误,很奇怪
//和上一个解法差不多相同
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if ((pListHead == nullptr) || (k < 1))
{
return nullptr;
}
ListNode* pNodeA = pListHead;
ListNode* pNodeB = pListHead;
ListNode* pNodeA = pListHead;
ListNode* pNodeB = pListHead; while (k > 1)
{
if (pNodeA == nullptr)
{
return nullptr;
}
pNodeA = pNodeA->next;
k--;
}
while (pNodeA->next != nullptr)
{
pNodeA = pNodeA->next;
pNodeB = pNodeB->next;
}
return pNodeB;
}
最新文章
- from collections import OrderedDict
- VPS/云主机 如何试用远程连接登录主机服务器_
- The user specified as a definer (&#39;root&#39;@&#39;%&#39;) does not exist
- AOP实现原理
- Redis配置文件(redis.conf)说明
- nginx 相关问题
- ASP.NET MVC使用jQuery无刷新上传
- Dropbox的可用Hosts文件
- 黑盒测试用例设计方法&;理论结合实际 ->; 等价类划分
- isinstance()和__name__
- jQuery Mobile 是创建移动 web 应用程序的框架。
- react-gulp-browserify
- tomcat服务器设置用户名和密码
- 关于O(logN)的正确理解
- [图论]最大流问题(Maximum flow)的定义
- Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes
- 简说raid1 raid2 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘
- Linux下C语言的进程控制编程
- python中导入一个需要传参的模块
- &#39;style-loader&#39;, &#39;css-loader&#39;使用
热门文章
- 【c#】csharp_learn
- Leaflet加载GeoServer发布的WMTS地图服务
- docker部署opengauss
- ChatGPT检测器开发者在知乎的文章,记录一下
- ORACLE 失效索引重建
- shell之flock
- 【Asp.net】服务器控件<;asp:TextBox >;<;/TextBox>;如何变为多文本控件
- 批量检测URL中的关键词,并且将不含有关键词的URL输出到txt文件当中
- 前端BootStrap框架和django创建项目和app
- 路由器、集线器、交换机分别工作在OSI七层协议模型的哪一层