摘要:
给定一个单链表,只给出头指针h:如何判断是否存在环?如何知道环的长度?如何找出环的连接点在哪里?带环链表的长度是多少?问题1 如何判断是否有环使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。slow fast问题2 如何判断环的长度在相遇点出同时出发,fast指针和slow指针再次相遇时,slow指针走过的点的个数就是环的长度。试问会不会slow在不到一圈的地方两者相遇呢?不会,因为假设slow走s,则fast走2s。二者相遇则二者距离必相差圈数的倍数,即:2s-s = k*圈距离=s。此时k=1 阅读全文