剑指offer之面试题15 :链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k个结点。
思路:
两个指针,两个指针距离k个结点,当走在前面的指针已经走到NULL,后面的指针刚好走到倒数第k个位置
代码:
/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/classSolution{public:ListNode*FindKthToTail(ListNode*pListHead,unsignedintk){//边界条件1:pListHead指向空即为空链//边界条件2:k<=0,倒数的大小为正if(pListHead==NULL||k<=0){returnNULL;}ListNode*pcur1=pListHead;ListNode*pcur2=pListHead;while(k>0){k--;//边界条件3:链表不够长,没有倒数第k个结点if(pcur1!=NULL){pcur1=pcur1->next;}else{returnNULL;}}while(pcur1!=NULL){pcur1=pcur1->next;pcur2=pcur2->next;}returnpcur2;}};
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。