您的位置:首页 > 其它

LEETCODE--Linked List Cycle

2017-02-28 11:52 281 查看
Given a linked list, determine if it has a cycle in it.

Follow up:

Can you solve it without using extra space?

判断链表是否有环:使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。

/**

* Definition for singly-linked list.

* struct ListNode {

* int val;

* ListNode *next;

* ListNode(int x) : val(x), next(NULL) {}

* };

*/

class Solution {

public:

bool hasCycle(ListNode *head) {

ListNode *slow = head;

ListNode *fast = head;

while(head){

if(fast->next && fast->next->next){

fast = fast->next->next;

}else{

return false;

}

slow = slow->next;

if(slow == fast)

return true;

}

return false;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: