Suppose we have a singly linked list, we have to find its length. The linked list has fields next and val.
So, if the input is like [2 -> 4 -> 5 -> 7 -> 8 -> 9 -> 3], then the output will be 7.
To solve this, we will follow these steps −
- count := 0
- while node is non null, do
- count := count + 1
- node:= next of node
- return count
Let us see the following implementation to get better understanding −
Example
class ListNode: def __init__(self, data, next = None): self.val = data self.next = next def make_list(elements): head = ListNode(elements[0]) for element in elements[1:]: ptr = head while ptr.next: ptr = ptr.next ptr.next = ListNode(element) return head class Solution: def solve(self, node): count = 0 while node: count +=1 node=node.next return count ob = Solution() head = make_list([2,4,5,7,8,9,3]) print(ob.solve(head))
Input
[2,4,5,7,8,9,3]
Output
7