题目描述
输入一个链表,输出该链表中倒数第k个结点。
主要思维:
这是一个单项链表,所以可以用两个指针,保持他们之间的间距为要求的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) {
int i=0;
bool flag=false;
ListNode* ep=pListHead;
ListNode* lp=pListHead;
while(lp!=NULL)
{
lp=lp->next;
i++;
if(i>k)
{
ep=ep->next;
}
}
if (i<k)return NULL;
return ep;
}
};