剑指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个节点的主要内容,如果未能解决你的问题,请参考以下文章