双指针法
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool hasCycle(ListNode *head) {
if(head==NULL)return false;
ListNode *first=head,*second=head;
bool flag=false;
while(first&&second)
{
if(second->next!=NULL)second=second->next->next;
else break;
first=first->next;
if(second==first){flag=true;break;}
}
return flag;
}
};
哈希表法
c++中哈希表不好写,算了,leetcode中定义的链表结构体为什么也不可以修改,(╯‵□′)╯︵┻━┻。算了算了,如果想写的还可以用set哦。