在链表中的循环检测问题中,我写了这段代码,得到了切分错误



在这个测试用例中,我得到分割错误在gfg中检测链表中的循环问题//184//这是存在循环的值73 39 71 71年28日24日31日14 35 60 3 48 45 43 76 33 75 44 59 47 41 39 40 23 63 4 2 9 44 62 33 75 56 18 28 52 17 30 19 62 24 14十四28 40 9 7 38 1 45 29 55 59 32 57 19 76 13 52 30 40 70年11 57 65 27日60 1 19 30 14 42 75 59 28 70 67 68 24 68 72 53 43 2 36 51 20 71年15日31日12 54 18 55 62 2 44 41 34 63 22 48 56 17 26 45 3 13 72 58 33 15 62 27 16 18 29 36 80 43 58 44 17 75 18 30 61年28 62年23日13日27日44 3 12 6 47 46 51 71 24 35 37 37 61 53 6 9 40 6 51 17 1 19 44 18 49 23 36 62 71 9 66 78年16日11日54 9 43 2431 18 58 68 7 70 72 12 30 310//这些是链表的值"

class Solution
{
public:
//Function to check if the linked list has a loop.
bool detectLoop(Node* head)
{
if(head->next  ==NULL  || head==NULL)
{
return false;
}
Node *slow=head;
Node *fast=head;
while(fast->next !=NULL && fast!=NULL)
{
slow=slow->next;
fast=fast->next->next;
if(slow==fast)
{return true;
}
}
return false;
}
};

我在gfg

上写了这段代码

至少需要在if语句和while循环中交换逻辑表达式的子表达式。而不是

if(head->next  ==NULL  || head==NULL)

while(fast->next !=NULL && fast!=NULL)

你需要写

if( head == NULL || head->next  == NULL )

while( fast != NULL && fast->next != NULL)

代码行

fast=fast->next->next;

你正在做第二个"next"没有检查第一个"下一个"给了零。当"快速"时,这肯定会导致所有合法输入的分段错误。

相关内容

  • 没有找到相关文章

最新更新