Insert Node at the Beginning of the Linked List

Insert Node at the Beginning of the Linked List” is the very basic problem of linked list for beginners. Here, the new node of the linked list is added before the head of the linked list and the new node will then become new head of the linked list. 

Example:

If the current linked list is 
{2->3->4}
Then after inserting node with value 1, the newly linked list will become 
{1->2->3->4}

The steps required to insert node at the beginning of the linked list are as follows:

  1. Create a new node with the desired value in data part and NULL value in pointer part.
  2. Check whether linked list is empty or not.
  3. If linked list is empty, then the new node will become the head of the linked list.
  4. Else if linked is not empty, then the pointer part of the new node will point to the head of the linked list and the new node will become the new head of the linked list.

C++ Program to Insert Node at the beginning of the linked list is as follows:

/* C++ Program to insert node at the beginning of the linked list */  
#include<bits/stdc++.h>
using namespace std;
/* Node Structure */  
struct node  
{  
    int data;  
    struct node *next;  
};  
/* Creating New Node */  
struct node *create(struct node **new_node, int ele)  
{  
    (*new_node) = (struct node*)malloc(sizeof(struct node));  
    (*new_node)->data = ele;  
    (*new_node)->next = NULL;  
    return (*new_node);  
}  
/* Inserting Node at beginning of the linked list */  
void insert_beg(struct node **head, int ele)  
{  
    // Creating a new node.  
    struct node *new_node;  
    new_node = (struct node*)malloc(sizeof(struct node));  
    new_node->data = ele;  
    new_node->next = NULL;  
      
    // check whether the linked list is empty or not  
    if(*head == NULL)     // if empty  
    {  
        *head = new_node;  
        return;  
    }  
    // if not empty  
    new_node -> next = (*head);  
    (*head) = new_node;  
}  
/* Printing the linked list */  
void print(struct node *head)  
{  
    struct node *p = head;  
    while(p!=NULL)  
    {  
        cout<<p->data<<" ";  
        p=p->next;  
    }  
}  
int main()  
{  
    struct node *head;  
    head = NULL;  
    cout<<"Inserting 3 new nodes at the beginning\n";
    insert_beg(&head,3);  
    insert_beg(&head,2);  
    insert_beg(&head,1);  
    cout<<"\nThe Nodes of the linked list are:\n";  
    print(head);  
}  
OUTPUT:
Inserting 3 new nodes at the beginning
The Nodes of the linked list are:
1 2 3

Related Posts:

  1. Insert a New Node at the end of the Linked List.
  2. Insert a New Node at the Middle of the Linked List.
  3. Insert a New Node at the Sorted Linked List.
  4. Reverse a Linked List.
  5. Reverse a Linked List Using Stack.
  6. Printing Linked List in Reverse Order without actually reversing the Linked List.
  7. Swap Adjacent Elements of the Linked List.
  8. Count All Occurrences of a Particular Node in a Linked List.
  9. Bubble Sort on Linked List.
  10. Detect a Loop in a Linked List.
  11. Find the Length of the Loop present in the Linked List.
  12. Detect and Remove Loop from a Linked List.
  13. Segregate Even and Odd Nodes of the Linked List.
  14. Delete Complete Linked List.
  15. Delete Nth Node of the Linked List.
  16. Delete without head pointer of the Linked List.
  17. Delete All Occurrences of particular node of the Linked List.
  18. Delete Alternate Nodes of the Linked List.
  19. Delete every ‘N’ Nodes After ‘M’ Nodes of the Linked List.
  20. Remove Duplicate Nodes from an Unsorted Linked List.

You may also like...