环形链表

Posted zouma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环形链表相关的知识,希望对你有一定的参考价值。

1.hash表:太慢了,内存消耗太多了。。当做思路看看得了。。

 1 bool hasCycle(ListNode *head) 
 2     unordered_map<ListNode*, bool> map;
 3     ListNode* temp = head;
 4     bool res = false;
 5     while(temp!=nullptr)
 6     
 7         if (map.count(temp))
 8         
 9             res = true;
10             break;
11         
12         map[temp] = true;
13         temp = temp->next;
14     
15     return res;
16 

 

2.快慢指针

 1 bool hasCycle(ListNode *head) 
 2     ListNode* fast=head;
 3     ListNode* slow = head;
 4     bool res = false;
 5     while (fast&&fast->next)
 6     
 7         fast = fast->next->next;
 8         slow = slow->next;
 9         if (fast == slow)
10         
11             res = true;
12             break;
13         
14     
15     return res;
16 

 

以上是关于环形链表的主要内容,如果未能解决你的问题,请参考以下文章

141. 环形链表 142.环形链表

数据结构--环形链表

17.环形链表,以及用环形链表解决约瑟夫问题

算法热门:环形链表II(LeetCode 142)

142#环形链表2

环形链表相关练习