求单循环链表中所有结点的最大值、最小值以及平均值。
时间: 2024-05-01 19:19:49 浏览: 46
单向循环链表中所有节点的最大值、最小值和平均值可以通过遍历链表来实现。具体步骤如下:
1. 定义一个变量 min_val,用来存储当前节点值的最小值,初始值可以设置为链表的第一个节点的值。
2. 定义一个变量 max_val,用来存储当前节点值的最大值,初始值可以设置为链表的第一个节点的值。
3. 遍历链表,比较每个节点的值和 min_val、max_val 的大小关系,更新 min_val 和 max_val 的值。
4. 定义一个变量 sum,用来累加所有节点的值,遍历完链表后,sum 的值就是所有节点值的总和。
5. 定义一个变量 count,用来记录链表中节点的个数,遍历完链表后,count 的值就是节点的个数。
6. 计算链表中所有节点的平均值,即 sum / count。
以下是单向循环链表中所有节点的最大值、最小值和平均值的实现代码示例(假设链表中每个节点都是整数类型):
```python
class Node:
def __init__(self, val):
self.val = val
self.next = None
def get_max_min_avg(head):
if not head:
return None, None, None
cur = head
min_val = max_val = cur.val
sum_val = count = 1
cur = cur.next
while cur != head:
if cur.val < min_val:
min_val = cur.val
if cur.val > max_val:
max_val = cur.val
sum_val += cur.val
count += 1
cur = cur.next
avg_val = sum_val / count
return max_val, min_val, avg_val
```
阅读全文