如何删除单圆链表中的所有节点?这段代码是正确的吗?当我尝试它时,我没有得到代码块中的输出。这是什么错误?
void deleteall()
{
struct node *temp1=head,*temp2;
do
{
while(temp1->next!=head)
{
temp1=temp1->next;
}
temp2=head;
head=head->next;
temp1->next=head;
free(temp2);
}while(temp1!=head);
head=NULL;
free(temp1);
printf("deleted successfully\n");
}
答案 0 :(得分:2)
要删除单个循环链接列表,请从next
的{{1}}开始,继续删除,直至找到head
,然后删除列表中的head
,像这样:
head