摘要: 问题:有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样的链表的尾部形成一环。1、如何判断一个链表是否存在环?2、如果链表存在环,如何找到环的入口点?问题1分析:设置两个指针fast和slow,初始值都指向头指针,slow每次前进一步,fast每次前进两步。如果存在环,则fast必先进入环,而slow后进入环,两个指针必定相遇,当然,fast先到达尾部为NULL,则为无环链表。证明:两个指针fast和slow,fast一次递增两步,slow一次递增一步。如果有环的话两者必然重合,反之亦然。因为fast每次走2步,而slow每次走一步,所以它们之间的差距是 阅读全文
posted @ 2011-04-03 14:06 糖拌咸鱼 阅读(763) 评论(2) 推荐(0) 编辑