算法每日一题(链表中倒数第k个结点)

56 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情

🌹作者:云小逸
📝个人主页:云小逸的主页
📝码云:云小逸 (YunXiaoYi003) - Gitee.com
🤟motto:要敢于一个人默默的面对自己,==强大自己才是核心==。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。==希望春天来之前,我们一起面朝大海,春暖花开!==🤟
👏专栏:C语言初阶👏

@TOC


前言

—————————————————————————————————————————— 首先先写上几句话:献给坚持创作的我和点开这篇文章希望进步的你

01.满天繁星有我想成为的==那道光==
02.你摸黑偷偷赶的路,都会变成意外袭来时你==少受的苦==
03.我们都有一颗种子可以让生命==发扬光大​==


在本篇文章里,我将分享一道很经典的算法题———链表中倒数第k个结点,并且分享解题思路,希望可以帮助到你😀😀😀

链表中倒数第k个结点_牛客题霸_牛客网

题目描述:

输入一个链表,输出该链表中倒数第k个结点。

示例1:

输入:1,{1,2,3,4,5}

返回值:{5}

以下代码均经过牛客测试,均正确,请放心测试😊😊😊

解题思路:

这是一道经典的快慢指针问题,设置一对快慢指针即可!

编辑

代码:

struct ListNode* FindKthToTail(struct ListNode* pListHead, int k )
 {
    // write code here
    struct ListNode* fast = pListHead, *slow = pListHead;
    while (k--)
 {
        if (fast == NULL)
        {
            return NULL;
        }
        fast = fast->next;
    }
    while (fast) {
        fast = fast->next;
        slow = slow->next;
    }
    return slow;
}

结果展示:

编辑

最后

十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

1、要么努力往上爬,要么烂在社会最底层。

2你现在的努力,真的配得上你的野心吗 ?

3、承认吧你表面的不屑,只是因为你骨子里的不敢。

4、“你说我现在开始好好学,晚了吗?” “我说晚了,你就不学吗???” 他们都是假装颓废,而你是真的颓废。

5、有种错觉叫做“我在头脑中激情澎湃了一会儿就权当我努力过了”,还有种常态叫做“我临睡前想做件大事改变世界激动得睡不着第二天早上连早起都做不到”。

最后如果觉得我写的还不错,请不要忘记点赞✌,收藏✌,加关注✌哦(。・ω・。)

愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚==菜鸟==逐渐成为==大佬==。加油,为自己点赞!