DEV Community

Dhanashree Rugi
Dhanashree Rugi

Posted on

Length of Linked List.

For more such blogs visit " www.coderlogs.com "

For a given linked list, you are supposed to write a function that finds the length of that linked list.

Example 1 :

Input : Linked List : 4 6 8 2
Output : Length of List : 4
image

Example 2 :

Input : Linked List : 1 3 1 2 1
Output : Length of List : 5
image

Steps :

  • Declare and initialise a temporary pointer temp as the head node of the linked list.
  • Initialise an integer variable count as zero(0).
  • Traverse the linked list using temp and increment the variable count by one until temp becomes NULL i.e.,
while(temp != NULL)
{
   count++;
   temp = temp->next;
 }
Enter fullscreen mode Exit fullscreen mode
  • Return or print the variable count which gives the length of the list.

C program that finds the length of the given linked list.

#include <stdio.h>
#include <stdlib.h> 
#include <limits.h>

struct node
{
    int data;
    struct node * next;
};

void displayLL(struct node * head)
{
    struct node * temp;
    temp = head;
    temp=head;
    while(temp!=0)
    {
       printf("%d ",temp->data);
       temp = temp->next;
    }
}

void length(struct node *head)
{
    struct node *temp = head;
    int count = 0;

    while(temp != NULL)
    {
        count++;
        temp = temp->next;
    }
    printf("\n--------------------------------\n");
    printf("Length of linked list : %d", count);
}
int main()
{
   struct node *head = 0, *newnode, *temp; 
   int n, choice, newdata;

// Create Linked List // 

   printf("Enter the number of nodes in the list : ");
   scanf("%d", &n);

   if(n == 0)
   {
      printf("--------------------------------\n");
      printf("Linked list cannot be empty");
      exit(0);
    } 

 for(int i = 1; i<=n; i++)
 {
   newnode = (struct node *)malloc(sizeof(struct node));
   printf("Enter the data%d : ", i);
   scanf("%d", &newnode->data);
   newnode->next = 0;
   if(head == 0)
     {
        head = temp = newnode;
     } 
   else
     { 
        temp->next = newnode;
        temp = newnode;
      }
  }
   printf("--------------------------------\n");
   printf("Original linked list : ");
   displayLL(head);
   length(head);
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)