📅  最后修改于: 2023-12-03 14:50:29.577000             🧑  作者: Mango
单链表是一种常见的数据结构,由多个节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
本文将介绍如何计算单链表中所有素节点的和与积,并给出相应的代码示例。
首先,我们需要定义单链表的节点。每个节点包含一个数据元素和一个指向下一个节点的指针。
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
为了计算单链表中所有素节点的和与积,我们需要遍历整个链表,并对每个节点进行判断。
算法步骤如下:
sum
)和积(product
)为0。sum
)中,并乘以积(product
)。sum
)和积(product
)的值。下面是用Python实现的计算单链表所有素节点的和与积的函数:
def calculate_sum_product(head):
# 初始化和与积为0
sum, product = 0, 1
# 遍历链表的每个节点
while head:
# 判断节点的值是否为素数
if is_prime(head.val):
# 如果是素数,更新和与积
sum += head.val
product *= head.val
# 将当前节点指向下一个节点
head = head.next
# 返回和与积的值
return sum, product
def is_prime(n):
# 判断一个数是否为素数
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
下面是一个使用示例的代码片段:
# 创建一个单链表: 1 -> 2 -> 3 -> 4 -> 5
head = ListNode(val=1)
head.next = ListNode(val=2)
head.next.next = ListNode(val=3)
head.next.next.next = ListNode(val=4)
head.next.next.next.next = ListNode(val=5)
# 计算单链表所有素节点的和与积
sum, product = calculate_sum_product(head)
# 输出结果
print(f"Sum: {sum}")
print(f"Product: {product}")
运行上述代码,将输出:
Sum: 5
Product: 2
这表示单链表中所有素节点的和为5,积为2。
本文介绍了如何计算单链表中所有素节点的和与积。算法思路是遍历链表,判断每个节点的值是否为素数,然后更新和与积。代码示例使用Python实现。