标签:解题思路 int c++ desc content offer null 剑指offer turn
使用快慢指针法,让快指针先走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; } };
标签:解题思路 int c++ desc content offer null 剑指offer turn
原文地址:https://www.cnblogs.com/fancy-li/p/11614388.html