主要要增强代码鲁棒性,考虑边界条件
#include <iostream>
using namespace std;
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
ListNode* FindKthTotail(ListNode* pListHead, unsigned int k){
if(pListHead==NULL||k==0){
return NULL;
}
ListNode *p1=pListHead;
ListNode *p2=pListHead;
//第一个指针先移动K-1步
for(int i=1;i<k;i++){
if(p1->next!=NULL)
{ p1=p1->next;}
else{
return NULL;
}
}
//两个指针一起移动
while(p1->next!=NULL){
p1=p1->next;
p2=p2->next;
}
return p2;
}