链表中倒数最后k个结点

发布时间:2024年01月19日

链表中倒数最后k个结点

链表中倒数最后k个结点_牛客题霸_牛客网输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。。题目来自【牛客题霸】icon-default.png?t=N7T8https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

描述

输入一个长度为 n 的链表,设链表中的元素的值为 ai?,返回该链表中倒数第k个节点。

如果该链表长度小于k,请返回一个长度为 0 的链表。

思路:

快指针先走k步,然后快慢指针一起走,如果快指针为空时,那么慢指针的指向即为链表倒数第k个结点。

特殊情况为k>列表的长度。这是应返回NULL

代码:
?

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

}

文章来源:https://blog.csdn.net/2301_77479435/article/details/135700558
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。