text: Delete a node in a Doubly Linked List
  Write a function to delete a given node in a doubly linked list.
  (a) Original Doubly Linked List
  (a) After deletion of head node
  (a) After deletion of middle node
  (a) After deletion of last node
  Algorithm
  Let the node to be deleted is del.
  1) If node to be deleted is head node, then change the head pointer to next current head.
  2) Set next of previous to del, if previous to del exixts.
  3) Set prev of next to del, if next to del exixts.
  #include <stdio.h> #include <stdlib.h> /* a node of the doubly linked list */ struct node { int data; struct node *next; struct node *prev; }; /* Function to delete a node in a Doubly Linked List. head_ref --> pointer to head node pointer. del --> pointer to node to be deleted. */ void deleteNode(struct node **head_ref, struct node *del) { /* base case */ if(*head_ref == NULL || del == NULL) return; /*; /* Finally, free the memory occupied by del*/ free(del); return; } /* UTILITY FUNCTIONS */ /* Function to insert a node at the beginning the doubly linked list 10<->8<->4<->2 */ push(&head, 2); push(&head, 4); push(&head, 8); push(&head, 10); printf("\n Original Linked list "); printList(head); /* delete nodes from the doubly linked list */ deleteNode(&head, head); /*delete first node*/ deleteNode(&head, head->next); /*delete middle node*/ deleteNode(&head, head->next); /*delete last node*/ /* Modified linked list will be NULL<-8->NULL */ printf("\n Modified Linked list "); printList(head); getchar(); }
  Time Complexity: O(1)
  Time Complexity: O(1)
  Please write comments if you find any of the above codes/algorithms incorrect, or find better ways to solve the same problem.
  Related Topics:
  - Given a linked list, reverse alternate nodes and append at the end
  - Pairwise swap elements of a given linked list by changing links
  - Self Organizing List | Set 1 (Introduction)
  - Merge a linked list into another linked list at alternate positions
  - QuickSort on Singly Linked List
  - Delete N nodes after M nodes of a linked list
  - Design a stack with operations on middle element
  - Swap Kth node from beginning with Kth node from end in a Linked List
  Writing code in comment? Please use ideone.com and share the link here.
  - ronny
  - ronny
  - himank
  - sagar patni
  - sagar patni
  - Mohamed
  - Dreamer