我试图理解C中的链表,我有一个程序,它在循环双列表中计算值为10的节点。我可以对这个程序应用乌龟和野兔算法吗?如果是,那么如何?感谢
int count(node *current, node *start, int c)
{
if(current == NULL)
return c;
if((current->value)==10)
c = c + 1;
if(current->next == start)
return c;
return count(current->next, start,c);
}
我的尝试:
int count(node *start, int c)
{
node *fast = start;
if(start == NULL)
return 0;
if(!(fast=fast->next))
if((start->roll_no)==10)
c = c + 1;
if(fast==start)
return c;
return count(start->next,c);
}
答案 0 :(得分:0)
这是我的c ++版本,工作正常。
int HasCycle(Node* head)
{
Node* tr = head;
Node* hr = tr;
while(1)
{
if(!hr)
return 0;
hr = hr->next;
if(!hr)
return 0;
hr = hr->next;
tr = tr->next;
if(hr == tr)
return 1;
}
return 0;
}