*Find Length of Linked List using Recursion*

Write a C Program Find Length of Linked List using Recursion. Here’s simple Program Find Length of Linked List using Recursion in C Programming Language.

**Recursion : :**

**Recursion : :**

- Recursion is the process of repeating items in a self-similar way. In programming languages, if a program allows you to call a function inside the same function, then it is called a
of the function.**recursive call**

- The C programming language supports recursion, i.e., a function to call itself. But while using recursion, programmers need to be careful to define an exit condition from the function, otherwise it will go into an infinite loop.

- Recursive functions are very useful to solve many mathematical problems, such as calculating the factorial of a number, generating Fibonacci series, etc.

**Problem : :**

**Problem : :**

This C Program uses recursive function & counts the number of nodes in a linked list. A linked list is an ordered set of data elements, each containing a link to its successor.

Here is the source code of the C Program Find Length of Linked List using Recursion. The C Program is successfully compiled and run on a Linux system. The program output is also shown below.

**SOURCE CODE : :**

**SOURCE CODE : :**

/* C Program Find Length of Linked List using Recursion */ #include <stdio.h> #include <stdlib.h> struct node { int a; struct node *next; }; void generate(struct node **,int size); int length(struct node*); void delete(struct node **); void display(struct node *head); int main() { struct node *head = NULL; int count,size; printf("Enter size of List u want to Generate :: "); scanf("%d",&size); generate(&head,size); display(head); count = length(head); printf("\nThe number of nodes are : %d \n", count); delete(&head); return 0; } void generate(struct node **head,int size) { /* for unknown number of nodes use size = rand() % 20; */ int i; struct node *temp; for (i = 0; i < size; i++) { temp = (struct node *)malloc(sizeof(struct node)); temp->a = i; if (*head == NULL) { *head = temp; (*head)->next = NULL; } else { temp->next = *head; *head = temp; } } } void display(struct node *head) { printf("\nThe Generated List is :: \n\n"); while(head!=NULL) { if(head->next==NULL) { printf("%d",head->a); } else { printf("%d--> ",head->a); } head=head->next; } printf("\n"); } int length(struct node *head) { if (head->next == NULL) { return 1; } return (1 + length(head->next)); } void delete(struct node **head) { struct node *temp; while (*head != NULL) { temp = *head; *head = (*head)->next; free(temp); } }

**Output : :**

**Output : :**

/* C Program Find Length of Linked List using Recursion */ Enter size of List u want to Generate :: 10 The Generated List is :: 9--> 8--> 7--> 6--> 5--> 4--> 3--> 2--> 1--> 0 The number of nodes are : 10 Process returned 0

Above is the source code for C Program Find Length of Linked List using Recursion which is successfully compiled and run on Windows System.The Output of the program is shown above .

If you found any error or any queries related to the above program or any questions or reviews , you wanna to ask from us ,you may * Contact Us* through our contact Page or you can also comment below in the comment section.We will try our best to reach up to you in short interval.

**Thanks for reading the post….**