LeetCode刷题笔记C++ 141 Linked List Cycle

it2025-05-27  9

141. Linked List Cycle

 

解题思路:记录下每次head的地址,写到vector里,如果发现有重复,就返回true,如果到底了都没重复,就返回false。

(网上看搜索了一下,基本上千篇一律都是快慢指针的写法,很奇怪)

/**  * Definition for singly-linked list.  * struct ListNode {  *     int val;  *     ListNode *next;  *     ListNode(int x) : val(x), next(NULL) {}  * };  */ #include <iostream> #include <set> #include <algorithm> class Solution { public:     bool hasCycle(ListNode *head) {         vector<ListNode*> nodeSeen;         vector<ListNode*>::iterator it;         while(head!=NULL)         {             it=find(nodeSeen.begin(),nodeSeen.end(),head);             if(it==nodeSeen.end())nodeSeen.push_back(head);             else return true;             head=head->next;         }         return false;     } };

最新回复(0)