# Deletion of node at beginning in singly linked list

0 like 0 dislike
1.1k views

edited
Deletion of node at beginning in singly linked list

0 like 0 dislike
by Goeduhub's Expert (7.6k points)
edited

## Deletion of node at beginning

Algorithm to Delete node from the beginning

Step 1: IF HEAD = NULL

Write UNDERFLOW
Go to Step 5
[END OF IF]

Step 2: SET PTR = HEAD

Step 4: FREE PTR

Step 5: EXIT

Example

Program

#include <stdio.h>

#include <stdlib.h>

struct node {

int data; // Data

struct node *next; // Address }

void createList(int n);

void deleteFirstNode();

void displayList();

int main()

{ int n, choice;

printf("Enter the total number of nodes: ");

scanf("%d", &n);

createList(n);

printf("\nData in the list \n");

displayList();

printf("\nPress 1 to delete first node: ");

scanf("%d", &choice); /* Delete first node from list */

if(choice == 1)

deleteFirstNode();

printf("\nData in the list \n");

displayList();

return 0; }

/* * Create a list of n nodes */

void createList(int n)

{ struct node *newNode, *temp; int data, i;

head = (struct node *)malloc(sizeof(struct node)); /* * If unable to allocate memory for head node */

printf("Unable to allocate memory.");

else

{

/* * In data of node from the user */

printf("Enter the data of node 1: ");

scanf("%d", &data);

for(i=2; i<=n; i++)

{

newNode = (struct node *)malloc(sizeof(struct node)); /* If memory is not allocated for newNode */

if(newNode == NULL) {

printf("Unable to allocate memory.");

break; }

else {

printf("Enter the data of node %d: ", i);

scanf("%d", &data);

newNode->data = data; // Link the data field of newNode with data

newNode->next = NULL; // Link the address field of newNode with NULL

temp->next = newNode; // Link previous node i.e. temp to the newNode

temp = temp->next; } }

printf("SINGLY LINKED LIST CREATED SUCCESSFULLY\n"); } }

/* * Deletes the first node of the linked list */

void deleteFirstNode() {

struct node *toDelete;

else {

printf("\nData deleted = %d\n", toDelete->data);

/* Clears the memory occupied by first node*/

free(toDelete);

printf("SUCCESSFULLY DELETED FIRST NODE FROM LIST\n");

}

}

/* * Displays the entire list */

void displayList() {

struct node *temp; /* * If the list is empty i.e. head = NULL */

printf("List is empty."); }

else {

while(temp != NULL) {

printf("Data = %d\n", temp->data); // Print data of current node

temp = temp->next; // Move to next node } }

Output

## For more Manipal University Jaipur B.Tech CSE-III Sem Data Structure Lab Experiments Click here

Learn & Improve In-Demand Data Skills Online in this Summer With  These High Quality Courses[Recommended by GOEDUHUB]:-

Best Data Science Online Courses[Lists] on:-

Claim your 10 Days FREE Trial for Pluralsight.