就是在单链表的基础上,把单链表的最后一个结点的指针域由原先指向空改为指向头结点。
不过如果要访问最后一个结点,它的时间复杂度就为O(n),需要改进一下就可以使访问头结点和最后一个结点的时间复杂度都为O(1)。
去掉头指针,加一个尾指针rear。
这是最后一个结点为rear,头结点为
rear->next,第一个结点为rear->next->next。
若要将两个循环链表合并为一个循环链表,
首先p=rearA->next(保存链表A头结点)
然后rearA->next=rearB->next->next(让链表A的最后一个结点指向链表B的第一个结点)
然后rearB->next=p(让链表B的最后一个结点指向链表A的头结点)
最后free(p) 释放p