Skip to content
Related Articles

Related Articles

Save Article
Improve Article
Save Article
Like Article

Remove first node of the linked list

  • Difficulty Level : Easy
  • Last Updated : 11 May, 2021

Given a linked list, the task is to remove the first node of the linked list and update the head pointer of the linked list. 
Examples: 
 

Input : 1 -> 2 -> 3 -> 4 -> 5 -> NULL
Output : 2 -> 3 -> 4 -> 5 -> NULL

Input : 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL
Output : 4 -> 6 -> 8 -> 33 -> 67 -> NULL

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

To remove first node, we need to make second node as head and delete memory allocated for first node. 
 

C++




// CPP program to remove first node of
// linked list.
#include <iostream>
using namespace std;
 
/* Link list node */
struct Node {
    int data;
    struct Node* next;
};
 
/* Function to remove the first node
   of the linked list */
Node* removeFirstNode(struct Node* head)
{
    if (head == NULL)
        return NULL;
 
    // Move the head pointer to the next node
    Node* temp = head;
    head = head->next;
 
    delete temp;
 
    return head;
}
 
// Function to push node at head
void push(struct Node** head_ref, int new_data)
{
    struct Node* new_node = new Node;
    new_node->data = new_data;
    new_node->next = (*head_ref);
    (*head_ref) = new_node;
}
 
// Driver code
int main()
{
    /* Start with the empty list */
    Node* head = NULL;
 
    /* Use push() function to construct 
       the below list 8 -> 23 -> 11 -> 29 -> 12 */
    push(&head, 12);
    push(&head, 29);
    push(&head, 11);
    push(&head, 23);
    push(&head, 8);
 
    head = removeFirstNode(head);
    for (Node* temp = head; temp != NULL; temp = temp->next)
        cout << temp->data << " ";
 
    return 0;
}

Java




// Java program to remove first node of
// linked list.
class GFG {
 
    // Link list node /
    static class Node {
        int data;
        Node next;
    };
 
    // Function to remove the first node
    // of the linked list /
    static Node removeFirstNode(Node head)
    {
        if (head == null)
            return null;
 
        // Move the head pointer to the next node
        Node temp = head;
        head = head.next;
 
        return head;
    }
 
    // Function to push node at head
    static Node push(Node head_ref, int new_data)
    {
        Node new_node = new Node();
        new_node.data = new_data;
        new_node.next = (head_ref);
        (head_ref) = new_node;
        return head_ref;
    }
 
    // Driver code
    public static void main(String args[])
    {
        // Start with the empty list /
        Node head = null;
 
        // Use push() function to con
        // the below list 8 . 23 . 11 . 29 . 12 /
        head = push(head, 12);
        head = push(head, 29);
        head = push(head, 11);
        head = push(head, 23);
        head = push(head, 8);
 
        head = removeFirstNode(head);
        for (Node temp = head; temp != null; temp = temp.next)
            System.out.print(temp.data + " ");
    }
}
 
// This code is contributed by Arnab Kundu

Python3




# Python3 program to remove first node of 
# linked list.
import sys
 
# Link list node
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
 
# Function to remove the first node 
# of the linked list
def removeFirstNode(head):
    if not head:
        return None
    temp = head
 
    # Move the head pointer to the next node
    head = head.next
    temp = None
    return head
 
# Function to push node at head
def push(head, data):
    if not head:
        return Node(data)
    temp = Node(data)
    temp.next = head
    head = temp
    return head
 
# Driver code
if __name__=='__main__':
 
    # Start with the empty list
    head = None
 
    # Use push() function to construct  
    # the below list 8 -> 23 -> 11 -> 29 -> 12
    head = push(head, 12)
    head = push(head, 29)
    head = push(head, 11)
    head = push(head, 23)
    head = push(head, 8)
 
    head = removeFirstNode(head)
     
    while(head):
        print("{} ".format(head.data), end ="")
        head = head.next
 
# This code is Contributed by Vikash Kumar 37

C#




// C# program to remove first node of
// linked list.
using System;
 
class GFG
{
 
    // Link list node /
    public class Node
    {
        public int data;
        public Node next;
    };
 
    // Function to remove the first node
    // of the linked list /
    static Node removeFirstNode(Node head)
    {
        if (head == null)
            return null;
 
        // Move the head pointer to the next node
        Node temp = head;
        head = head.next;
 
        return head;
    }
 
    // Function to push node at head
    static Node push(Node head_ref, int new_data)
    {
        Node new_node = new Node();
        new_node.data = new_data;
        new_node.next = (head_ref);
        (head_ref) = new_node;
        return head_ref;
    }
 
    // Driver code
    public static void Main(String []args)
    {
        // Start with the empty list /
        Node head = null;
 
        // Use push() function to con
        // the below list 8 . 23 . 11 . 29 . 12 /
        head = push(head, 12);
        head = push(head, 29);
        head = push(head, 11);
        head = push(head, 23);
        head = push(head, 8);
 
        head = removeFirstNode(head);
        for (Node temp = head; temp != null; temp = temp.next)
            Console.Write(temp.data + " ");
    }
}
 
/* This code contributed by PrinciRaj1992 */

Javascript




<script>
// javascript program to remove first node of
// linked list.   
// Link list node /
class Node {
    constructor(val) {
        this.data = val;
        this.next = null;
    }
}
 
    // Function to remove the first node
    // of the linked list /
    function removeFirstNode( head) {
        if (head == null)
            return null;
 
        // Move the head pointer to the next node
         temp = head;
        head = head.next;
 
        return head;
    }
 
    // Function to push node at head
    function push( head_ref , new_data) {
         new_node = new Node();
        new_node.data = new_data;
        new_node.next = (head_ref);
        (head_ref) = new_node;
        return head_ref;
    }
 
    // Driver code
     
        // Start with the empty list /
         head = null;
 
        // Use push() function to con
        // the below list 8 . 23 . 11 . 29 . 12 /
        head = push(head, 12);
        head = push(head, 29);
        head = push(head, 11);
        head = push(head, 23);
        head = push(head, 8);
 
        head = removeFirstNode(head);
        for ( temp = head; temp != null; temp = temp.next)
            document.write(temp.data + " ");
 
// This code is contributed by todaysgaurav
</script>
Output: 
23 11 29 12

 

Time complexity : O(1)
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :