剑指offer14--链表的倒数第k个结点
作者:互联网
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路
快慢指针
快指针先跑k步,慢指针再一起开始跑,快指针到底的时候,慢指针就到了倒数k个
实现
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if (!pListHead) return nullptr;
ListNode* p=pListHead;
while (k--)
{
if (p)
p=p->next;
else
return nullptr;
}
while (p)
{
p=p->next;
pListHead=pListHead->next;
}
return pListHead;
}
};
牛客的bug
这是我做第二遍了,牛客有了自测功能,但是自测死活通过不了。
报错:
编译错误:您提交的代码无法完成编译
main.cc:22:51: error: cannot initialize a parameter of type 'ListNode ’ with an lvalue of type ‘int’
ListNode ret12 = solution.FindKthToTail( k, head);
^
./solution.h:11:39: note: passing argument to parameter ‘pListHead’ here
ListNode FindKthToTail(ListNode* pListHead, unsigned int k) {
^
1 error generated.*
然后提交竟然是可以通过的!!
最后发现是自测的接口参数顺序和提交测试的接口顺序不一样,交换参数顺序自测能过了但是后台就过不了了。。。
标签:ListNode,pListHead,--,链表,int,自测,倒数第,指针 来源: https://blog.csdn.net/qq_41565359/article/details/113663399