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;
}

 

 

posted @ 2014-06-01 23:33  OpenSoucre  阅读(198)  评论(0编辑  收藏  举报