Circular Linked List
Circular Linked List
struct node
{
int val;
struct node *next;
};
typedef struct node NODE;
}
NODE *allocate(int data)
{
NODE nn=(NODE)malloc(sizeof(NODE));
if(nn!=NULL)
{
nn->val=data;
nn->next=NULL;
}
return nn;
}
return head;
}
NODE *cur=head;
NODE *tmp=head;
while(cur->next!=head)
cur=cur->next;
if(cur==head)
head=NULL;
else{
head=head->next;
cur->next=head;
}
free(tmp);
return head;
}
NODE *delete_end(NODE *head)
{
if(head==NULL)
{
printf("Underflow: List is empty");
return head;
}
NODE *cur=head,*save=NULL;
while(cur->next!=head){
save=cur;
cur=cur->next;
}
if(cur==head)
head=NULL;
else
save->next=cur->next;
free(cur);
return head;
}
NODE *cur=head,*save=NULL;
int c=1;