Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
用C++吧,python创建链表、树啥的总觉得不正规……
/**
* 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==nullptr)
return false;
ListNode *f=head,*s=head; //一快一慢,有环的话,快的早晚会套圈……
while(f->next && f->next->next){
f=f->next->next;
s=s->next;
if(f==s)
return true;
}
return false;
}
};