剑指offer之面试题15:链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第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; } };
当前题目:剑指offer之面试题15:链表中倒数第k个结点
文章网址:http://cdiso.cn/article/pejsos.html