【求助】关于数据结构

    这两天数据结构老师给了我们一道题,题目是这样的:一个带头结点的循环单链表

判断节点中的数据是否为节点的两倍,若是返回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);
            }

    我总感觉有哪里是不对的,但是不确定
    到底对不对这个程序

是不是想要判断某一个节点的数据是该节点顺序的两倍? 还是要每个节点都要判断?我觉得 你的程序要做的是 判断每一个节点,如果不是,还要找出在哪一个地方破坏了这个规则 感觉写的是对的

                   -----来自一个菜鸟