十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
题目:输入一个链表,输出该链表中倒数第k个结点。

成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元南宫做网站,已为上家服务,为南宫各地企业和个人服务,联系电话:13518219792
思路:
两个指针,两个指针距离k个结点,当走在前面的指针已经走到NULL,后面的指针刚好走到倒数第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)
{
//边界条件1:pListHead指向空即为空链
//边界条件2:k<=0,倒数的大小为正
if(pListHead==NULL||k<=0)
{
return NULL;
}
ListNode* pcur1=pListHead;
ListNode *pcur2=pListHead ;
while(k>0)
{
k--;
//边界条件3:链表不够长,没有倒数第k个结点
if(pcur1!=NULL)
{
pcur1=pcur1->next;
}
else
{
return NULL;
}
}
while(pcur1!=NULL)
{
pcur1=pcur1->next;
pcur2=pcur2->next;
}
return pcur2;
}
};