题目描述
输入一个链表,输出该链表中倒数第k个结点
解题思路
先将链表遍历一遍,记录链表的长度值,然后用链表长度减去k值,还需要判断结果是否大于0,若大于0的话,返回倒数第k个结点,否则返回NULL
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
int count=0;
ListNode *p = pListHead;
while(p!=NULL){
++count;
p=p->next;
}
p=pListHead;
count=count-k;
if(count>=0){
while(count--){
p=p->next;
}
return p;
}else{
return NULL;
}
}
};