我正在研究单链表问题。它是关于编写一个函数来实现递归算法,该算法计算单链表中的节点数。
我被卡住了,因为我需要提示用户输入指向链接列表第一个节点的引用。
但到目前为止,我只能编写一个程序,用户应手动输入元素并最终计算节点,而不是通过引用,并计算引用所指向的链表的节点。
任何人都可以帮助我吗?
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = Node(None)
def add(self, item):
temp = Node(item)
temp.next = self.head
self.head = temp
def countNodes(self, node):
if not node:
return 0
else:
return 1 + self.countNodes(node.next)
def getCount(self):
return self.countNodes(self.head)
if __name__=='__main__':
new = LinkedList()
new.add(1)
new.add(3)
new.add(1)
new.add(2)
new.add(3)
new.add(1)
new.add(2)
print ('Count of nodes is :',new.getCount())
为了更清楚,用户无需手动创建这样的链接列表。用户将向我的函数输入一个变量,该变量是指向链表的第一个节点的引用。