这两天数据结构老师给了我们一道题,题目是这样的:一个带头结点的循环单链表
判断节点中的数据是否为节点的两倍,若是返回1,不是则返回0.
代码是这样的:
int ______ (LinkList head,int &m)
{
int i = 1;
LinkList p = head->next;
while(p->next != head)
{
if(p->data / 2 == i)
{
p = p->next;
i++;
}
else
{
m = i;
break;
}
}
if(p == head)
return (1);
else
return (0);
}
我总感觉有哪里是不对的,但是不确定
到底对不对这个程序
是不是想要判断某一个节点的数据是该节点顺序的两倍? 还是要每个节点都要判断?我觉得 你的程序要做的是 判断每一个节点,如果不是,还要找出在哪一个地方破坏了这个规则 感觉写的是对的
-----来自一个菜鸟