bool CListcircle(CList plist)//判断链表是否成环
{
assert(plist != NULL);
if (plist == NULL)
{
return false;
}
CNode* p;
CNode* q;
p = (CNode*)malloc(sizeof(CNode));
q = (CNode*)malloc(sizeof(CNode));
assert(p != NULL && q != NULL);
p = plist->next -> next;
q = q->next;
while (p != NULL && p->next != NULL && p != q)
{
p = p->next;
q = q->next;
}
if (p == q && p != NULL)
{
return true;
}
return true;
}