您的位置:首页 > 其它

LeetCode:Linked List Cycle

2014-11-11 15:06 274 查看
题目描述:

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

Follow up:

Can you solve it without using extra space?
思路:初始化一个快指针fast,一个慢指针slow。快指针一次移动两个单位,慢指针一次移动一个单位。如果链表有环,则两指针必然会相遇。否则若fast指针遍历到NULL,则证明链表无环。

代码:

bool hasCycle(ListNode *head) {
ListNode * fast = head;
ListNode * slow = head;
while(fast != NULL && fast->next != NULL)
{
fast = fast->next->next;
slow = slow->next;
if(fast == slow)
break;
}
if(fast == NULL || fast->next == NULL)
return false;
else
return true;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: