题目描述
输入一个链表,输出该链表中倒数第k个结点。
/*
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(NULL==pListHead) return NULL;
int n=0;
ListNode* pCur=pListHead;
while(pCur!=NULL)
{
++n;
pCur=pCur->next;
}
if(n<k) return NULL;
pCur=pListHead;
n=n-k;
while(n--){
pCur=pCur->next;
}
return pCur;
}
};
还有一个方法就是定义两个指针,指针一走到第k个节点,指针2指向头结点,两个指针一起往前走,指针1走到尾后指针2指向倒数第k个