这是快慢指针,感觉做过就没做,但我估计我不看答案,快慢指针我要折腾死,
因为如何返回环的开始确实需要一点思考
之前没用过哈希表,这次就用一下,感受一下吧
查看代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *detectCycle(ListNode *head) {
unordered_set<ListNode*>s;
while(head != NULL){
if(s.count(head)){
return head;
}
s.insert(head);
head = head->next;
}
return NULL;
}
};