链表OJ—链表中倒数第k个节点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你们有所帮助,同时也希望各位看官能对我的文章给与点评,希望我们能够携手共同促进进步,在编程的道路上越走越远!


提示:以下是本篇文章正文内容,下面案例可供参考

1、链表中倒数第k个节点题目:

方法讲解:

图文解析:

解题思路:采用快慢双指针的方法(slow、fast)

1、要求倒数第k个节点的话,我们让快指针fast先走k步;

2、快慢指针再同时走,当fast指针指向空时,循环结束,此时slow指针指向的节点就是倒数第k个节点。

代码实现:

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

总结

好了,本篇博客到这里就结束了,如果有更好的观点,请及时留言,我会认真观看并学习。
不积硅步,无以至千里;不积小流,无以成江海。

猜你喜欢

转载自blog.csdn.net/2301_79585944/article/details/134901110