题目:输入一个链表,输出该链表中倒数第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;}};