题目:给你一个链表的头节点head,判断链表中是否有环。
思路:使用快慢指针,当链表中有环时,fast指针终会与slow指针相遇(就像两个运动员在操场上跑步一个快一个慢 扣圈的时候一定会有相遇的时候)
时间复杂度为O(n)空间复杂度O(1)
public class Solution {
public boolean hasCycle(ListNode head) {
if(head==null){
return false;
}
ListNode f = head;
ListNode s =head;
while(f!=null&&f.next!=null){
f=f.next.next;
s=s.next;
if(f==s){
return true;
}
}
return false;
}
}