📅  最后修改于: 2023-12-03 14:50:29.519000             🧑  作者: Mango
在单链表中找到可以被给定整数 K 整除的所有节点,并计算它们的和与积。单链表是一种常见的数据结构,其中每个节点包含一个数据元素和一个指向下一个节点的引用。
本文介绍了一个解决该问题的算法。
sum
和 product
,分别用于保存节点的和和积,初始值都为0。sum
中,然后将其值乘到product
中。sum
和 product
。以下是一个示例单链表的图示:
head -> 3 -> 2 -> 9 -> 12 -> 6 -> null
如果给定的整数K为3,则可以被3整除的节点为3、9和12。
计算它们的和:
sum = 3 + 9 + 12 = 24
计算它们的积:
product = 3 * 9 * 12 = 324
以下是一个使用Python语言实现的函数,用于计算链表中可被K整除的节点的和与积:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def find_sum_and_product(head, K):
node = head
sum = 0
product = 1
while node:
if node.val % K == 0:
sum += node.val
product *= node.val
node = node.next
return sum, product
# 创建示例链表
head = ListNode(3)
head.next = ListNode(2)
head.next.next = ListNode(9)
head.next.next.next = ListNode(12)
head.next.next.next.next = ListNode(6)
# 计算链表中可被K整除的节点的和与积
K = 3
sum, product = find_sum_and_product(head, K)
print("Sum:", sum) # 输出:Sum: 24
print("Product:", product) # 输出:Product: 324
以上示例中,首先创建了一个示例链表,并设置整数K的值为3。然后调用 find_sum_and_product
函数计算链表中可被K整除的节点的和与积,最后将结果打印输出。
本文介绍了一个解决单链表中可被K整除的节点的和与积的算法,并给出了示例代码。该算法的时间复杂度为O(n),其中n是链表中的节点个数。通过遍历链表的方式,可以找到并计算符合条件的节点,从而得到它们的和与积。