struct node {
int data;
struct node* next;
struct node* prev;
}
2.Delete node in doubly linked list
void delete_node(struct node** headRef, int data)
{
assert(headRef != NULL);
struct node* head = *headRef;
while (head != NULL && head->data != data)
{
head = head->next;
}
if (head == NULL)
{
return;
}
if (head->prev != NULL)
{
head->prev->next = head->next;
}
else
{
*headRef = head->next;
}
if (head->next != NULL)
{
head->prev->next = head->next;
}
head->prev = NULL;
head->next = NULL;
free(head);
}