Remove first node of the linked list

• Difficulty Level : Easy
• Last Updated : 11 Jan, 2023

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 the first node, we need to make the second node as head and delete the memory allocated for the first node.

Implementation:

C++

 `// CPP program to remove first node of``// linked list.``#include ``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

 ``

Output

`23 11 29 12 `

Time complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up