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 }