一,问题描述:
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
怎么确定有没有环?
这么来做:我们做两个指针,一快一慢。快的一次前进两格,慢的一次前进一格。
如果fast指针指向了None,那么说明无环,返回null
如果链表有环,当快慢指针都进入环内后,必然会在某个时刻相遇。
当fast和slow相遇,就把fast放回起点,slow原地不动
然后两人一起出发,都每次走一步,直到他们相遇
这个相遇点就是环的入口
二,代码实现
一,问题描述:
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
怎么确定有没有环?
这么来做:我们做两个指针,一快一慢。快的一次前进两格,慢的一次前进一格。
如果fast指针指向了None,那么说明无环,返回null
如果链表有环,当快慢指针都进入环内后,必然会在某个时刻相遇。
当fast和slow相遇,就把fast放回起点,slow原地不动
然后两人一起出发,都每次走一步,直到他们相遇
这个相遇点就是环的入口
二,代码实现
相关文章: