

原理的单链表和循环单链表的区别:

初始化循环单链表时,使头节点next指针指向头节点。
判断循环单链表是否为空。
对比:
单链表:if(L->next == NULL)
双链表:if(L->next==L)
判断循环单链表的结点p是否为表尾结点


循环双链表:

表头结点的prior指向表尾节点;
表尾结点的next指向头节点;


这段node在执行的时候,在双链表中p为最后一个节点的时候,指向的是NULL,但是循环双链表在这段代码是适用的。
同样当删除结点的时候:

指向了头节点的前驱指针。



生活知识百科