带头节点循环单链表 释放

作者&投稿:大叔家 (若有异议请与网页底部的电邮联系)
带头结点循环单链表删除首元素填空~

是只有尾指针的带头结点单循环链表吧

1、Linklist p = rear->next->next;
2、rear = rear->next; 或者rear = p->next;
3、free(p);

if(p->next==head->next){
printf("yes
");
}
else
printf("no
");

关于最后的头结点要不要释放
根据严蔚敏的《数据结构(C语言版)》37页,对DestroyList(LinkList &L)的解释是:销毁线性链表L,L不再存在。
我认为应该是要释放。

参考代码如下:
p=head->next;
for(; p ;)
{
q=p->next;
free(p);
p=q;
}
free(head);