解题思路:
每经过一个node,把它的val置为INT_MIN,遍历,如果找到哪个node的val为INT_MIN,说明刚才来过,直接返回这个node
/**
* 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) {
while(head != NULL){
if (head->val == INT_MIN) return head;
head->val = INT_MIN;
head = head->next;
}
return nullptr;
}
};