检测单链表里有没有环线
检测单链表里有没有环路bool hasLoop(Node *head) {Node *slow head, *fast headwhile (slow && fast
检测单链表里有没有环路
bool hasLoop(Node *head) {
Node *slow = head, *fast = head;
while (slow && fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
if (slow == fast)
return true;
}
return false;
}
我的疑问是,这个算法怎么能够一定正确,难道不会发生fast跳过slow指针吗? 单链表 算法 指针
[解决办法]这个不能检测环路吧
[解决办法]孤陋寡闻了,这个是追赶法,就像两个人在跑步,速度不一样,如果跑的是圈,就一定会再次相遇
[解决办法]而且他们的速度差为1,是不可能跳过的
[解决办法]古老的问题, 看我当年的说明和代码
http://blog.csdn.net/happy__888/article/details/558356