注册 登录
编程论坛 C++教室

判断一个链表是否有循环

wuhao5519 发布于 2008-02-13 22:37, 917 次点击
// 判断一个链表是否 有循环
/*bool hasLoop(node* p)
{
}
*/
struct node
{
    int value;
    node* next;
};

bool hasLoop(node* p)  //步长法
{
    node* temp = p;
    if(!temp->next)
        return false;
    node* temp2 = temp->next;
    if(!temp2->next)
        return false;
    return true;
}
void main()
{
    node* p=new node[100];
    for(int i=0;i<100;i++)
    {
        p[i].value=i+1;
        p[i].next = p+i+1;
        p[i-1].next=p+1;  // 值  或  NULL  
    }
    if(hasLoop(p))
        cout<<"Loop"<<endl;
    else
        cout<<"Not Loop"<<endl;
}
0 回复
1