剑指offer 15:链表的倒数第k个节点

Posted fancy-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer 15:链表的倒数第k个节点相关的知识,希望对你有一定的参考价值。

题目描述

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

解题思路

使用快慢指针法,让快指针先走k步,然后再让慢指针开始走,当快指针到达链表尾部时,慢指针刚好到达倒数第k个节点。

C++代码实现:

/*
struct ListNode 
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) 
    
;*/
class Solution 
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) 
    
if(pListHead==NULL) return NULL; ListNode *p1,*p2; p1=pListHead; int count=0; int pos=k; while(pos>0 && p1!=NULL) p1=p1->next; pos--; count++; //如果链表长度不到K,输入不合法,返回NULL if(count!=k) return NULL; p2=pListHead; while(p1!=NULL) p1=p1->next; p2=p2->next; return p2; ;

以上是关于剑指offer 15:链表的倒数第k个节点的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点

力扣专题——剑指 Offer 22. 链表中倒数第k个节点

算法剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点