首先需要对单链表进行检查,判断是否为空链表;
判断k的值是否合理;
k的值是否大于链表的长度,k的值是否为0。
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 || k==0)
return NULL;
ListNode *p=pListHead;
ListNode *q=pListHead;
int len=0;
while(p!=NULL){
p=p->next;
len++;
}
if(len<k)
return NULL;
p=pListHead;
for(int i=0;i<k;i++){
p=p->next;
}
while(p!=NULL){
p=p->next;
q=q->next;
}
return q;
}
};