A singly linked list is a linked list that contains a sequence of nodes, where each node has data and a reference to the next node. Today, we will explain how to find the number of occurrences of an element in the singly linked list.

**Count of Occurrences of an Element in a Linked List without using Recursion**

We are going to use the **iterative (non-recursive)** approach to solve this problem. The steps of finding the frequency of a given element are given below.

- The method takes the head of the linked list and the target element. We create a temp variable to traverse the linked list. Initially, it is equal to the head of the linked list. We also initialize the count variable with a zero value.
- We start iterating over the linked list using a while loop. We continue till we reach the end of the linked list, i.e., temp is
`NULL`

. In each iteration, we compare the current node’s value with the given one. If both are equal, we increment the count by one. - Finally, we return the count variable as our final answer.

**Implementation**

The code of the above approach is as follows:

#node for the linked list class Node: def __init__(self, value=None): self.value = value self.next = None #reference to the next node #implementation of linked list class LinkedList: def __init__(self): self.head = None self.length = 0 #total number of elements in the linked list #adds a node at the end of the linked list def insert(self, value): node = Node(value) #create a node if self.head == None: #if list is empty insert a node at the start self.head = node else: temp = self.head #iterate through the list till last node is found while temp.next: temp = temp.next temp.next = node #adding a new node self.length += 1 #increment the length #traverse the complete list and print the node value def traverse(self): temp = self.head while temp: print(temp.value, end="\t") temp = temp.next print("") #finds the total number of times an element exists in the linked list def countNumberOfOccurrences(head, element): temp = head count = 0 while temp: if temp.value == element: #if the current node's value is equal to the given value, then increase the count by one count += 1 temp = temp.next #advance the linked list return count ll = LinkedList() #insert values ll.insert(1) ll.insert(2) ll.insert(2) ll.insert(0) ll.insert(2) ll.insert(1) print("The given Linked list:") ll.traverse() n = 2 count = countNumberOfOccurrences(ll.head, n) print(f"Count of an element {n} is: {count}") n = 1 count = countNumberOfOccurrences(ll.head, n) print(f"Count of an element {n} is: {count}") n = 3 count = countNumberOfOccurrences(ll.head, n) print(f"Count of an element {n} is: {count}")

**Output**

The given Linked list: 1 2 2 0 2 1 Count of an element 2 is: 3 Count of an element 1 is: 2 Count of an element 3 is: 0