how to delete a node from the a linked list code example
Example 1: how to remove a node from a linked list in c
typedef struct node{
int value; //this is the value the node stores
struct node *next; //this is the node the current node points to. this is how the nodes link
}node;
node *rmvNode(node *head, int index){
node *tmp = head;
node *rmv;
int count = 0;
//base case for if the user enters a value greater then or equal to the length of the head
//base case for if the user enters a value with a list of length 1. because in this library a list MUST contain one value minimum
if(index >= len(head) || len(head) == 1){
return NULL;
}
//if you want to remove the first value
if(index == 0){
rmv = head; //stores the head at this given moment in time
head = tmp->next; //this jumps the position of the head making sure that the beginning is no longer part of the head
free(rmv); //this frees the memory given to the initial head
return head;
}
//if you want to remove index position 1
if(index == 1){
rmv = head->next;
head->next = tmp->next->next;
free(rmv);
return head;
}
//if you want to remove the last value
if(index == -1){
while(count < len(head)-2){ //we do -2 because we want to access the node before the last one
tmp = tmp->next;
count += 1;
}
rmv = tmp->next;
tmp->next = NULL;
free(rmv);
return head;
}
//remove anything else
while(count < index-1){
tmp = tmp->next;
count += 1;
}
rmv = tmp->next;
tmp->next = tmp->next->next;
free(rmv);
return head;
}
Example 2: delete a node in doubly linked list python
Delete a node in a Doubly Linked List
If node to be deleted is head node, then change the head pointer to next current head.
Set next of previous to del, if previous to del exists.
Set prev of next to del, if next to del exists.