链表中倒数第k个结点

题目描述

输入一个链表,输出该链表中倒数第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     
13         if(pListHead == NULL) return NULL;
14         
15         ListNode* p1=NULL;
16         ListNode* p2=pListHead;
17         int flag=0;
18         int num=0;
19         while(p2)
20         {
21             
22             
23             if(flag==0)
24             {
25                 num++;
26                 if(num == k)
27                 {
28                     flag=1;
29                     p1=pListHead;
30                 }
31             }
32             else
33             {
34                 p1=p1->next;
35             }
36             p2=p2->next;
37         }
38         return p1;
39     }
40 };
原文地址:https://www.cnblogs.com/Berryxiong/p/6148827.html