如果存在空头结点:
p->next
head
->next
如果不存在空头结点:
p->next
head
判断空链表的条件是:
head==head->next;
rear==rear->next;
扩展资料:
用尾指针rear表示的单循环链表对开始结点a1和终端结点an查找时间都是O(1)。而表的操作常常是在表的首尾位置上进行,因此,实用中多采用尾指针表示单循环链表。
在单链表中,从一已知结点出发,只能访问到该结点及其后续结点,无法找到该结点之前的其它结点。而在单循环链表中,从任一结点出发都可访问到表中所有结点,这一优点使某些运算在单循环链表上易于实现。
如果存在空头结点(head指向的结点只存放head->next的指针,不储存值)
p->next == head ->next
如果头结点非空(head指向的结点不仅存放head->next的指针,也储存值)
p->next == head
如果是静态链表,直接计数就可以了。
如果是动态链表:可以用一个记录指针,一直指向循环链表的头节点,当p移向下一个节点时,先判断下一个节点是否为头节点。
也可以不用记录指针,根据头节点的值,或者给一个标志(比如说把头节点的值设置成负的)来判断p的下一个节点是否为头节点。
p->next == L.head;
p->next==NULL