bool CheckCircular(NodeData* head)
{
if (NULL == head) return false;
NodeData* p = head;
NodeData* q = p->next;
while(NULL != p &&
NULL != q) {
if (p == q) return true;
p = p->next;
q = q->next;
if (NULL == q) {
return false;
} else {
q = q->next;
}
}
return false;
}