Given a linked list, determine if it has a cycle in it.

Can you solve it without using extra space?

```public class Program {

public static void Main(string[] args) {
var head = new ListNode(1) {
next = new ListNode(2) {
next = new ListNode(1) {
next = new ListNode(2) {
next = new ListNode(3)
}
}
}
};

Console.WriteLine(res);

}

private static bool HasCycle(ListNode head) {
while(pointer != null && pointer.next != null) {
pointer = pointer.next.next;
}
return false;
}

public class ListNode {
public int val;
public ListNode next;
public ListNode(int x) { val = x; }
}

}```

`False`