leetcode Linked List Cycle

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

Follow up:
Can you solve it without using extra space?

求链表是否有环的问题,要考虑链表为空的情况,定义一个快指针和一个慢指针,如果快指针和慢指针重合就表明有环

bool hasCycle(ListNode *head){
    if(head == NULL || head->next == NULL)  return false;
    ListNode* first = head, *second = head;
    while(second->next!=NULL && second->next->next!=NULL){
        first = first->next;
        second = second->next->next;
        if(first == second) return true;
    }
    return false;
}
原文地址:https://www.cnblogs.com/xiongqiangcs/p/3763897.html