Remove first node of the linked list

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

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

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 */

chevron_right


Output:

23 11 29 12

Time complexity : O(n)



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.