其他分享
首页 > 其他分享> > 剑指offer14--链表的倒数第k个结点

剑指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