Given a linked list containing brand names of biscuits sold by a retail store, write a python function which finds and returns the total number of biscuit brands.
class Node:
def __init__(self,data):
self.__data=data
self.__next=None
def get_data(self):
return self.__data
def set_data(self,data):
self.__data=data
def get_next(self):
return self.__next
def set_next(self,next_node):
self.__next=next_node
class LinkedList:
def __init__(self):
self.__head=None
self.__tail=None
def get_head(self):
return self.__head
def get_tail(self):
return self.__tail
def add(self,data):
new_node=Node(data)
if(self.__head is None):
self.__head=self.__tail=new_node
else:
self.__tail.set_next(new_node)
self.__tail=new_node
def count_nodes(biscuit_list):
count=0
#PLEASE HELP ME IN THIS CODE TO GET SUITABLE OUTPUT....
temp = Node.get_data(biscuit_list.get_head())
while(temp is not None):
count += 1
temp = Node(temp).get_next()
return count
biscuit_list=LinkedList()
biscuit_list.add("Goodday")
biscuit_list.add("Bourbon")
biscuit_list.add("Hide&Seek")
biscuit_list.add("Nutrichoice")
print(count_nodes(biscuit_list))
The output is 1, but that is wrong. The correct output is 4.
count_nodesshould start pointing to the list's head item and iterate as long as__nextof the current item isnot None-- check the links, not the data!