📅  最后修改于: 2023-12-03 14:55:36.444000             🧑  作者: Mango
本程序旨在查找给定链表中所有节点的平均值。
class Node:
def __init__(self, value):
self.value = value
self.next = None
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
def add_node(self, value):
new_node = Node(value)
if self.head is None:
self.head = new_node
self.tail = new_node
else:
self.tail.next = new_node
self.tail = new_node
def calculate_average(self):
count = 0
total = 0
current_node = self.head
while current_node is not None:
count += 1
total += current_node.value
current_node = current_node.next
return total/count if count != 0 else 0
创建一个空的链表:
my_linked_list = LinkedList()
向链表中添加节点:
my_linked_list.add_node(3)
my_linked_list.add_node(5)
my_linked_list.add_node(7)
计算链表中所有节点的平均值:
average = my_linked_list.calculate_average()
print(average) # 5.0
程序采用面向对象编程的思路,分别定义了 Node
和 LinkedList
两个类。
Node
类表示一个链表的节点,节点包含一个值 value
和一个指向下一个节点的指针 next
。
LinkedList
类表示一个链表,链表包含一个头节点 head
和一个尾节点 tail
。链表提供了 add_node
和 calculate_average
两个方法:
add_node
方法:向链表中添加一个新节点。如果链表为空,则新节点既是头节点也是尾节点;如果链表非空,则在链表尾部插入新节点。
calculate_average
方法:遍历链表,计算所有节点的值的总和和节点数量,然后返回节点值的总和除以节点数量得到的平均数。注意,如果链表是空的,该方法返回 0。