题意:
        判断给定的链表中是否有环。如果有环则返回true,否则返回false。

方法:
快慢指针

思路:
        快慢指针。
        快慢指针从同一起点出发,慢指针速度为1,快指针速度为2。
        如果快慢指针相遇,则说明有环;
        否则,因为快指针速度快,所以会最先遇到 null 而退出循环,说明无环。


class Solution {
public:
    bool hasCycle(ListNode *head) {
        if(head==nullptr)
            return false;
        ListNode *p=head,*q=head;//快慢指针
        while(q){
            p=p->next;//慢指针速度为1
            if(q->next)//快指针速度为2
                q=q->next->next;
            else
                return false;
            if(p==q)//如果快慢指针相遇,则说明有环
                return true;
        }
        return false;
    }
};

时间复杂度:
空间复杂度: