编写一个求已知单链表的数据域的平均值的函数
时间: 2024-12-14 14:26:45 浏览: 12
在编写一个函数来计算单链表数据域的平均值时,通常需要遍历链表并累加所有节点的数据,然后除以链表的长度。这里是一个简单的Python示例,假设我们有一个`ListNode`类表示链表节点,每个节点都有一个`data`属性:
```python
class ListNode:
def __init__(self, data=0):
self.data = data
self.next = None
def average_of_linked_list(head):
if not head or not head.next: # 如果链表为空或只有一个元素
return head.data if head else None
total = 0
count = 0
current = head
while current:
total += current.data
count += 1
current = current.next
if count == 0: # 防止除数为零的情况
return 0
else:
return total / count
# 示例:
# 创建链表:1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
head.next.next.next.next = ListNode(5)
print(average_of_linked_list(head)) # 输出:3.0
```
在这个函数中,我们首先检查链表是否为空或只有一项,如果是则直接返回该值或None(如果链表空)。接着,通过循环遍历链表,累加所有节点的`data`值,并计数节点的数量。最后,将总和除以节点数得到平均值。
阅读全文