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 -> NULLInput : 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 <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)
Auxiliary Space: O(1)