首页 > 其他 > 详细

快速找出长度未知链表的中间节点(快慢指针)

时间:2015-10-21 10:32:52      阅读:265      评论:0      收藏:0      [点我收藏+]

思路:设置两个指针,一个指针为fast,一个指针为slow,fast的步长为2,slow的步长为1,当fast到达链表的最后节点时,slow指针所指向的就是链表的中间节点。

具体代码实现:

技术分享
 1 LinkList *GetMidNode(LinkList *head)
 2 {
 3     LinkList *slow = head;
 4     LinkList *fast = slow;
 5     
 6     while(slow)
 7     {
 8         fast = fast->next;
 9         if(fast)
10         {
11             fast = fast->next;
12             slow = slow->next;
13         }
14     }
15     return slow;
16 }
View Code

快慢指针的其他应用:

  判断单链表是否为循环链表。

 

快速找出长度未知链表的中间节点(快慢指针)

原文:http://www.cnblogs.com/sxmcACM/p/4896974.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!