Counting nodes in a linked list is very useful while working on it. It requires creating a temp node pointing to the head of the list and a variable called i with initial value 0. If the temp node is not null, increase i by 1 and move to the next node using temp next. Repeat the process till the temp node becomes null. The final value of i will be the total number of nodes in the linked list.

The function countNodes is created for this purpose. It is a 4-step process.

int countNodes() {

//1. create a temp node pointing to head

//2. create a variable to count nodes
int i = 0;

//3. if the temp node is not null increase
//   i by 1 and move to the next node, repeat
//   the process till the temp becomes null
while(temp != NULL) {
i++;
temp = temp->next;
}

//4. return the count
return i;
}

//1. create a temp node pointing to head

//2. create a variable to count nodes
int i = 0;

//3. if the temp node is not null increase
//   i by 1 and move to the next node, repeat
//   the process till the temp becomes null
while (temp != NULL) {
i++;
temp = temp->next;
}

//4. return the count
return i;
}
def countNodes(self):

#1. create a temp node pointing to head

#2. create a variable to count nodes
i = 0

#3. if the temp node is not null increase
#   i by 1 and move to the next node, repeat
#   the process till the temp becomes null
while (temp != None):
i += 1
temp = temp.next

#4. return the count
return i
int countNodes() {

//1. create a temp node pointing to head
Node temp = new Node();

//2. create a variable to count nodes
int i = 0;

//3. if the temp node is not null increase
//   i by 1 and move to the next node, repeat
//   the process till the temp becomes null
while(temp != null) {
i++;
temp = temp.next;
}

//4. return the count
return i;
}
public int countNodes() {

//1. create a temp node pointing to head
Node temp = new Node();

//2. create a variable to count nodes
int i = 0;

//3. if the temp node is not null increase
//   i by 1 and move to the next node, repeat
//   the process till the temp becomes null
while(temp != null) {
i++;
temp = temp.next;
}

//4. return the count
return i;
}
public function countNodes() {

//1. create a temp node pointing to head
\$temp = new Node();

//2. create a variable to count nodes
\$i = 0;

//3. if the temp node is not null increase
//   i by 1 and move to the next node, repeat
//   the process till the temp becomes null
while(\$temp != null) {
\$i++;
\$temp = \$temp->next;
}

//4. return the count
return \$i;
}

The below is a complete program that uses above discussed concept of counting the total number of nodes of a linked list.

#include <iostream>
using namespace std;

//node structure
struct Node {
int data;
Node* next;
};

private:
public:
}

//Add new element at the end of the list
void push_back(int newElement) {
Node* newNode = new Node();
newNode->data = newElement;
newNode->next = NULL;
} else {
while(temp->next != NULL)
temp = temp->next;
temp->next = newNode;
}
}

//count nodes in the list
int countNodes() {
int i = 0;
while(temp != NULL) {
i++;
temp = temp->next;
}
return i;
}

//display the content of the list
void PrintList() {
if(temp != NULL) {
cout<<"The list contains: ";
while(temp != NULL) {
cout<<temp->data<<" ";
temp = temp->next;
}
cout<<"\n";
} else {
cout<<"The list is empty.\n";
}
}
};

// test the code
int main() {

//Add four elements in the list.
MyList.push_back(10);
MyList.push_back(20);
MyList.push_back(30);
MyList.push_back(40);

//Display the content of the list.
MyList.PrintList();

//number of nodes in the list
cout<<"No. of nodes: "<<MyList.countNodes();

return 0;
}

The above code will give the following output:

The list contains: 10 20 30 40
No. of nodes: 4
#include <stdio.h>
#include <stdlib.h>

//node structure
struct Node {
int data;
struct Node* next;
};

//Add new element at the end of the list
void push_back(struct Node** head_ref, int newElement) {
struct Node *newNode, *temp;
newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = newElement;
newNode->next = NULL;
} else {
while(temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}

//count nodes in the list
int i = 0;
while (temp != NULL) {
i++;
temp = temp->next;
}
return i;
}

//display the content of the list
printf("The list contains: ");
while (temp != NULL) {
printf("%i ",temp->data);
temp = temp->next;
}
printf("\n");
} else {
printf("The list is empty.\n");
}
}

// test the code
int main() {
struct Node* MyList = NULL;

//Add four elements in the list.
push_back(&MyList, 10);
push_back(&MyList, 20);
push_back(&MyList, 30);
push_back(&MyList, 40);

//Display the content of the list.
PrintList(MyList);

//number of nodes in the list
printf("No. of nodes: %i",countNodes(MyList));

return 0;
}

The above code will give the following output:

The list contains: 10 20 30 40
No. of nodes: 4
# node structure
class Node:
def __init__(self, data):
self.data = data
self.next = None

def __init__(self):

#Add new element at the end of the list
def push_back(self, newElement):
newNode = Node(newElement)
return
else:
while(temp.next != None):
temp = temp.next
temp.next = newNode

#count nodes in the list
def countNodes(self):
i = 0
while (temp != None):
i += 1
temp = temp.next
return i

#display the content of the list
def PrintList(self):
if(temp != None):
print("The list contains:", end=" ")
while (temp != None):
print(temp.data, end=" ")
temp = temp.next
print()
else:
print("The list is empty.")

# test the code

#Add four elements in the list.
MyList.push_back(10)
MyList.push_back(20)
MyList.push_back(30)
MyList.push_back(40)

#Display the content of the list.
MyList.PrintList()

#number of nodes in the list
print("No. of nodes: ", MyList.countNodes())

The above code will give the following output:

The list contains: 10 20 30 40
No. of nodes: 4
//node structure
class Node {
int data;
Node next;
};

}

//Add new element at the end of the list
void push_back(int newElement) {
Node newNode = new Node();
newNode.data = newElement;
newNode.next = null;
} else {
Node temp = new Node();
while(temp.next != null)
temp = temp.next;
temp.next = newNode;
}
}

//count nodes in the list
int countNodes() {
Node temp = new Node();
int i = 0;
while(temp != null) {
i++;
temp = temp.next;
}
return i;
}

//display the content of the list
void PrintList() {
Node temp = new Node();
if(temp != null) {
System.out.print("The list contains: ");
while(temp != null) {
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.println();
} else {
System.out.println("The list is empty.");
}
}
};

// test the code
public class Implementation {
public static void main(String[] args) {

//Add four elements in the list.
MyList.push_back(10);
MyList.push_back(20);
MyList.push_back(30);
MyList.push_back(40);

//Display the content of the list.
MyList.PrintList();

//number of nodes in the list
System.out.print("No. of nodes: "+ MyList.countNodes());
}
}

The above code will give the following output:

The list contains: 10 20 30 40
No. of nodes: 4
using System;

//node structure
class Node {
public int data;
public Node next;
};

}

//Add new element at the end of the list
public void push_back(int newElement) {
Node newNode = new Node();
newNode.data = newElement;
newNode.next = null;
} else {
Node temp = new Node();
while(temp.next != null)
temp = temp.next;
temp.next = newNode;
}
}

//count nodes in the list
public int countNodes() {
Node temp = new Node();
int i = 0;
while(temp != null) {
i++;
temp = temp.next;
}
return i;
}

//display the content of the list
public void PrintList() {
Node temp = new Node();
if(temp != null) {
Console.Write("The list contains: ");
while(temp != null) {
Console.Write(temp.data + " ");
temp = temp.next;
}
Console.WriteLine();
} else {
Console.WriteLine("The list is empty.");
}
}
};

// test the code
class Implementation {
static void Main(string[] args) {

//Add four elements in the list.
MyList.push_back(10);
MyList.push_back(20);
MyList.push_back(30);
MyList.push_back(40);

//Display the content of the list.
MyList.PrintList();

//number of nodes in the list
Console.Write("No. of nodes: "+ MyList.countNodes());
}
}

The above code will give the following output:

The list contains: 10 20 30 40
No. of nodes: 4
<?php
//node structure
class Node {
public \$data;
public \$next;
}

public function __construct(){
}

//Add new element at the end of the list
public function push_back(\$newElement) {
\$newNode = new Node();
\$newNode->data = \$newElement;
\$newNode->next = null;
} else {
\$temp = new Node();
while(\$temp->next != null) {
\$temp = \$temp->next;
}
\$temp->next = \$newNode;
}
}

//count nodes in the list
public function countNodes() {
\$temp = new Node();
\$i = 0;
while(\$temp != null) {
\$i++;
\$temp = \$temp->next;
}
return \$i;
}

//display the content of the list
public function PrintList() {
\$temp = new Node();
if(\$temp != null) {
echo "The list contains: ";
while(\$temp != null) {
echo \$temp->data." ";
\$temp = \$temp->next;
}
echo "\n";
} else {
echo "The list is empty.\n";
}
}
};

// test the code

//Add four elements in the list.
\$MyList->push_back(10);
\$MyList->push_back(20);
\$MyList->push_back(30);
\$MyList->push_back(40);

//Display the content of the list.
\$MyList->PrintList();

//number of nodes in the list
echo "No. of nodes: ".\$MyList->countNodes();
?>

The above code will give the following output:

The list contains: 10 20 30 40
No. of nodes: 4

5