输入一个链表,输出该链表中倒数第k个结点。
class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* p1=pListHead,*p2=pListHead; int count=0; while(p1!=NULL){ count++; if(count>k) p2=p2->next; p1=p1->next; } return count<k?NULL:p2; } };
分析:用两个指针来判断,两个指针差k个位置,当后面一个指针到尾部时,前面那个就在倒数第k个位置。还要注意判断k大于链表长度的情况。
----------------
坚持每天学习一点点