题解 | #链表中倒数最后k个结点#

链表中倒数最后k个结点

https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

C语言版本  快慢指针法

struct ListNode* FindKthToTail(struct ListNode* pHead, int k ) {

    // write code here

    //双指针法

    struct ListNode *pfast, *pslow;

    pfast = pHead, pslow = pHead;

    for(int i = 0; i < k; i++){ //找到距slow K个位置的fast

        if(!pfast)              //如果fast不存在,表示已经找到末尾,返回NULL

            return NULL;

        pfast = pfast->next;

    }

   

    while(pfast){               //如果fast一直存在,则快慢指针一起向后移动,

        pfast = pfast->next;    //直到fast找到末尾,退出

        pslow = pslow->next;

    }

    return pslow;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务