//without extra space
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
if(head == null) return false;
ListNode fast = head.next;
ListNode slow = head;
while(fast != slow) {
if(fast == null || fast.next == null) {
return false;
}
fast = fast.next.next;
slow = slow.next;
}
return true;
}
}
// /**
// * Definition for singly-linked list.
// * class ListNode {
// * int val;
// * ListNode next;
// * ListNode(int x) {
// * val = x;
// * next = null;
// * }
// * }
// */
// public class Solution {
// public boolean hasCycle(ListNode head) {
// if(head == null) return false;
// Set<ListNode> hashSet = new HashSet<>();
// while(head != null) {
// if(! hashSet.contains(head)) {
// hashSet.add(head);
// head = head.next;
// } else {
// return true;
// }
// }
// return false;
// }
// }