struct node {
int data;
struct node *next;
};
void deleteNode(struct node *head, struct node *n)
{
if(head == n)
{
if(head->next == NULL){
return;
}
// Node to be deleted is head
head->data = head->next->data;
n = head->next;
head->next = head->next->next;
free(n);
}
// When not first node
struct node *prev = head;
while(prev->next != NULL && prev->next != n)
prev = prev->next;
prev->next = prev->next->next;
free(n);
}