为了在链表中找到一个循环,我们只需使用两个指针slow和fast。
slow = head->next;
fast = head->next->next;
while(slow != fast)
{
slow = head->next;
fast = head->next->next;
if(!slow || !fast)
{
cout<<" No Loop ";
break;
}
}
我们可以通过这种方法找到链表中的循环。 那么,如果我让慢指针跳2个节点,快指针跳3个节点,或者慢指针跳3个节点,快指针跳4个节点,会有什么后果......
我在我的代码中尝试了这个方法,但每次都得到正确的结果。 有没有人能够阐述一下?另外,我立刻想到的另一件事是,我们可以通过某些特定的慢指针和快指针选择进入无限循环,但是找不到。
head->next
为空,尝试获取fast
的值时会出现空指针引用崩溃。 - Darth Hunterix