Problem 1 : Is it a loop ? (判断链表是否有环?)Assume that wehave a head pointer to a link-list. Also assumethat we know the list is single-linked. Can you com...
分类:
编程语言 时间:
2015-01-30 20:53:04
阅读次数:
307
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4251303.html声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处...
分类:
其他好文 时间:
2015-01-26 22:34:02
阅读次数:
233
1. 判断单链表是否有环 采用网络上常用的追赶的方式,原理:若存在环,则在环内的两个对象在速度不同时一定会相遇,速度快与速度慢的对象分别记为A,B,为避免A的一步太大,将B忽略,故设A的一步为2,B的一步为1,保证在一步内A或者在B之后,或者与B相遇;若不存在环,A先跑至终点 设链表为N1,N2,....
分类:
其他好文 时间:
2015-01-24 21:24:07
阅读次数:
234
Is a loop ? Question descrip as follows :
Assume that wehave a head pointer to a link-list. Also assumethat we know the list is single-linked. Can you come up an algorithm to checkwhether this link list includes a loop by using O(n) time and O(1) ...
分类:
其他好文 时间:
2015-01-22 13:28:16
阅读次数:
229
本文介绍了检查链表是否有环的O(1)空间O(n)时间的方法。本文还有对该方法正确性的推导,让读者知其然也知其所以然。...
分类:
其他好文 时间:
2015-01-09 14:18:29
阅读次数:
119
1、链表定义
typedef struct ListElement_t_ {
void *data;
struct ListElement_t_ *next;
} ListElement_t;
typedef struct List_t_{
int size;
int capacity;
ListElement_t *head;
ListE...
分类:
其他好文 时间:
2014-12-13 23:25:33
阅读次数:
398
首先,判断一个链表是否有环?对于这个问题:可以用两个指针,刚开始都指向头节点,然后一个指针每次向后移一步,另一个指针每次向后移两步,如果最后移两步的指针为空时,说明无环,如果最后两个指针相等,说明有环。如果把第一指针看成静止,则相当于第二个每次走一步,所以在那个环上时,是一定能相遇的。如何找到这个链...
分类:
其他好文 时间:
2014-12-12 11:26:48
阅读次数:
125
快慢指针:如果没有环,快指针一定先走完,两个指针不会相遇;如果有环,那么最多只有一个环,并且两个指针迟早都会进入环,假定环的长度为L,当慢指针进入环之后,快指针每次能向前追一步距离,最多只要L-1步就能追上慢指针所以可以用两个指针是否相遇来判断是否有环。
分类:
其他好文 时间:
2014-11-20 11:52:29
阅读次数:
172
第一步:检测链表是否有环。方法还是比较多的,这里先讲一个:快慢指针。快慢指针的方法,就是让两个指针同时指向链表。在向后遍历的时候,一个指针每次走两步,称为快指针;一个指针每次走一步,称为慢指针。如果快慢指针相遇,则说明链表有环,否则无环。(后面证明。)代码实现如下:// 如果有环,则返回快慢指针相遇...
分类:
其他好文 时间:
2014-11-15 17:04:23
阅读次数:
169