如何判断单链表是否有环

    科技2024-12-20  6

    单链表有环,是指单链表中某个节点的next指针域指向的是链表中在它之前的某一个节点,这样在链表的尾部形成一个环形结构。 判断一个链表是否有环,通常使用快慢指针的方法,也就是说一个每次指针走两步,一个指针每次只走一步,如果链表有环,则两个指针总会在一个节点上相遇,若无环,则不会相遇。 代码实现如下:

    #include<iostream> using namespace std; typedef struct node { int value; struct node *next; }*Linklist; int HasCycle(Linklist head) { Linklist p; p = head; while(p != NULL && p->next != NULL) { p = p->next->next; head = head->next; if(p == head) return 1; } return 0; }
    Processed: 0.012, SQL: 8