# Linked List Cycle

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

## Example

Given -21->10->4->5, tail connects to node index 1, return true

## Solution

小技巧：

fast 起始位置是head.next 而不是head 否则就一开始就相等了，如果是循环链表，快指针走两步，满指针走一步，快指针早晚会追上满指针的。

while fast and fast.next:

if fast == slow:

return True

```
"""
Definition of ListNode
class ListNode(object):

    def __init__(self, val, next=None):
        self.val = val
        self.next = next
"""
class Solution:
    """
    @param head: The first node of the linked list.
    @return: True if it has a cycle, or false
    """
    def hasCycle(self, head):
        # write your code here
        if head == None or head.next == None:
            return False
        slow, fast = head, head.next
        while fast and fast.next:
            if fast == slow:
                return True
            slow = slow.next
            fast = fast.next.next
        return False
```
