【剑指offer】链表中倒数第k个结点
题目链接:链表中倒数第k个结点
题意:输入一个链表,输出该链表中倒数第k个结点。
题解:两个指针,让其中一个先走k-1步,那后走的指针,走到倒数第k个时,前面一个就走完了!
代码:
1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NULL) { 7 } 8 };*/ 9 class Solution { 10 public: 11 ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { 12 if(pListHead == NULL || k == 0) return NULL; 13 ListNode* pre = pListHead; 14 ListNode* lst = pListHead; 15 while(k > 0){ 16 if(!pre) return NULL; 17 pre = pre->next; 18 k--; 19 } 20 while(pre!=NULL){ 21 pre = pre->next; 22 lst = lst->next; 23 } 24 return lst; 25 } 26 };