leetcode 141.环形链表

这题有很多破坏链表结构的简单解法。。就先不考虑了。

在不破坏链表的情况下,可以使用哈希表法或者快慢指针,两种方法的时间代价都是O(n)。

 

其中哈希表法可以判断链表是否有环,或者用来找到环入口。和快慢指针法相比是空间代价为O(n)。

 

快慢指针法可以用来判断是否有环,求环的长度(快慢指针第二次相遇和第一次相遇中间,慢指针走的长度就是环长度),以及寻找环入口(从数学推导来看是可行的,,就是实现比较花功夫)。

推导如下(图片来自力扣某题解)

 

posted @ 2020-08-31 13:34  布羽  阅读(164)  评论(0)    收藏  举报