题目
输入一个链表,输出该链表中倒数第k个结点。
思路
先用一个指针指到k-1,再让另一个指针从头开始和第一个指针一起跑。当第一个知道末尾,第二个刚好指到第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) {
int i = 0;
ListNode* p = pListHead;
ListNode* q = pListHead;
for(; p != NULL; i++){
if(i >= k)
q = q->next;
p = p->next;
}
return i < k ? NULL : q;
}
};