## Counting number of Nodes in Linked List :

We know the logic for traversing through the linked list in C Programming. [See Dry Run]

Function for counting the singly linked nodes is very similar to display(), Only difference is that instead of printing data we are incrementing length variable.

## Two Ways of Counting the Number of Nodes :

We are counting the number of nodes using two ways – Using Non Recursion and Using Recursion.

## Program : Way 1 [ Does not Returning Value]

```void count()
{
struct node *temp;
int length = 0;
temp = start;
while(temp!=NULL)
{
length++;
temp=temp->next;
}
printf("nLength of Linked List : %d",length);
}
```

## Program : Way 2 [Returning Value]

```int count()
{
struct node *temp = start;
int length = 0;
while(temp!=NULL)
{
length++;
temp=temp->next;
}
return(length);
}
```

## Program : Way 3 [ Recursive Program to Count Number of Nodes in Linked List ]

```int count(node *temp)
{
if(temp == NULL)
return(0);
return(1 + count(temp->next));
}
```

## Explanation of Recursive Function :

Consider the [this linked list] – Recursive function call for linked list is as follow – 