题目:输入一个链表,输出该链表中倒数第k个结点。
思路:
两个指针,两个指针距离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; } };
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。