C++ - Delete the first node of the Linked List
In this method, the first node of the linked list is deleted. For example - if the given list is 10->20->30->40 and the first node is deleted, the list becomes 20->30->40.
Deleting the first node of the Linked List is very easy. If the head is not null then create a temp node pointing to head and move head to the next of head. Then delete the temp node.
The function pop_front is created for this purpose. It is a 3-step process.
void pop_front() { if(head != NULL) { //1. if head is not null, create a // temp node pointing to head Node* temp = head; //2. move head to next of head head = head->next; //3. delete temp node free(temp); } }
The below is a complete program that uses above discussed concept of deleting the first node of the linked list.
#include <iostream> using namespace std; //node structure struct Node { int data; Node* next; }; class LinkedList { private: Node* head; public: LinkedList(){ head = NULL; } //Add new element at the end of the list void push_back(int newElement) { Node* newNode = new Node(); newNode->data = newElement; newNode->next = NULL; if(head == NULL) { head = newNode; } else { Node* temp = head; while(temp->next != NULL) temp = temp->next; temp->next = newNode; } } //Delete first node of the list void pop_front() { if(head != NULL) { Node* temp = head; head = head->next; free(temp); } } //display the content of the list void PrintList() { Node* temp = head; if(temp != NULL) { cout<<"The list contains: "; while(temp != NULL) { cout<<temp->data<<" "; temp = temp->next; } cout<<endl; } else { cout<<"The list is empty.\n"; } } }; // test the code int main() { LinkedList MyList; //Add four elements in the list. MyList.push_back(10); MyList.push_back(20); MyList.push_back(30); MyList.push_back(40); MyList.PrintList(); //Delete the first node MyList.pop_front(); MyList.PrintList(); return 0; }
The above code will give the following output:
The list contains: 10 20 30 40 The list contains: 20 30 40