How to delete an element in a linked list ?
- To delete a node from linked list, we need to do following steps:
- Find previous node of the node to be deleted.
- Change the next of previous node.
- Free memory for the node to be deleted
Example
Input: position = 1, Linked List = 9->2->3->7->6
Output: Linked List = 9->3->7->6
Input: position = 0, Linked List = 9->2->3->7->6
Output: Linked List = 2->3->7->6
Sample code
#include <stdio.h>
#include <stdlib.h>
// A linked list node
struct Node
{
int data;
struct Node *next;
};
/* Given a reference (pointer to pointer) to the head of a list
and an int, inserts a new node on the front of the list. */
void push(struct Node** head_ref, int new_data)
{
struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
/* Given a reference (pointer to pointer) to the head of a list
and a position, deletes the node at the given position */
void deleteNode(struct Node **head_ref, int position)
{
// If linked list is empty
if (*head_ref == NULL)
return;
// Store head node
struct Node* temp = *head_ref;
// If head needs to be removed
if (position == 0)
{
*head_ref = temp->next; // Change head
free(temp); // free old head
return;
}
// Find previous node of the node to be deleted
for (int i=0; temp!=NULL && i<position-1; i++)
temp = temp->next;
// If position is more than number of ndoes
if (temp == NULL || temp->next == NULL)
return;
// Node temp->next is the node to be deleted
// Store pointer to the next of node to be deleted
struct Node *next = temp->next->next;
// Unlink the node from linked list
free(temp->next); // Free memory
temp->next = next; // Unlink the deleted node from list
}
// This function prints contents of linked list starting from
// the given node
void printList(struct Node *node)
{
while (node != NULL)
{
printf(" %d ", node->data);
node = node->next;
}
}
/* Drier program to test above functions*/
int main()
{
/* Start with the empty list */
struct Node* head = NULL;
push(&head, 6);
push(&head, 7);
push(&head, 3);
push(&head, 2);
push(&head, 9);
puts("Created Linked List: ");
printList(head);
deleteNode(&head, 4);
puts("\nLinked List after Deletion at position 4: ");
printList(head);
return 0;
}
Output:
Created Linked List:
9 2 3 7 6
Linked List after Deletion at position 4:
9 2 3 7
Categorized in:
Tagged in:
Accenture interview questions and answers, Altimetrik India Pvt Ltd interview questions and answers, Applied Materials interview questions and answers, Bharti Airtel interview questions and answers, BMC Software interview questions and answers, c program to delete first node in linked list, Capgemini interview questions and answers, CASTING NETWORKS INDIA PVT LIMITED interview questions and answers, CGI Group Inc interview questions and answers, Chetu interview questions and answers, Ciena Corporation interview questions and answers, Collabera Te interview questions and answers, compro technologies interview questions and answers, delete a node from linked list algorithm, delete a node in linked list with single pointer, delete a specific node in linked list c++, delete first node in linked list c++, delete node at given position in a linked list, delete node at given position in a linked list c++, delete node at given position in a linked list in c++, delete node linked list c++, deletion in linked list in data structure, Dell International Services India Pvt Ltd interview questions and answers, Flipkart interview questions and answers, Genpact interview questions and answers, Globallogic India Pvt Ltd interview questions and answers, IBM interview questions and answers, Indecomm Global Services interview questions and answers, linked list delete node c++, Mphasis interview questions and answers, NetApp interview questions and answers, Oracle Corporation interview questions and answers, remove element from linked list c++, remove middle element linked list c++, SAP Labs India Pvt Ltd interview questions and answers, Sapient Consulting Pvt Ltd interview questions and answers, Tech Mahindra interview questions and answers, Tracxn Technologies Pvt Ltd interview questions and answers, UnitedHealth Group interview questions and answers, Wipro Infotech interview questions and answers, WM Global Technology Services India Pvt.Ltd Limited (WMGTS) interview questions and answers, Xoriant Solutions Pvt Ltd interview questions and answers, Yodlee Infotech Pvt Ltd interview questions and answers