2.2链表 链表中倒数第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 (k <= 0||!pListHead) return NULL;
14         ListNode* p1 = pListHead;
15         ListNode* p2 = pListHead;
16         //p1向前移动到第k个节点,即移动k-1次
17         for (int i = 1;i < k;i++)
18         {
19             p1 = p1->next;    
20             if (p1 == NULL) 
21                 return NULL;
22         }
23         //当p1移动到最后一个节点的时候,p2正好移动到倒数第k个节点
24         while (p1->next != NULL)
25         {    
26             p1 = p1->next;
27             p2 = p2->next;
28         }
29         return p2;
30     }
31 };

转载于:https://www.cnblogs.com/hslzju/p/5707618.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值