原理的单链表和循环单链表的区别:
初始化循环单链表时,使头节点next指针指向头节点。
判断循环单链表是否为空。
对比:
单链表:if(L->next == NULL)
双链表:if(L->next==L)
判断循环单链表的结点p是否为表尾结点
循环双链表:
表头结点的prior指向表尾节点;
表尾结点的next指向头节点;
这段node在执行的时候,在双链表中p为最后一个节点的时候,指向的是NULL,但是循环双链表在这段代码是适用的。
同样当删除结点的时候:
指向了头节点的前驱指针。