📌  相关文章
📜  单链表中可被 K 整除的节点的和与积(1)

📅  最后修改于: 2023-12-03 14:50:29.519000             🧑  作者: Mango

单链表中可被 K 整除的节点的和与积

简介

在单链表中找到可以被给定整数 K 整除的所有节点,并计算它们的和与积。单链表是一种常见的数据结构,其中每个节点包含一个数据元素和一个指向下一个节点的引用。

本文介绍了一个解决该问题的算法。

算法思想
  1. 初始化两个变量 sumproduct,分别用于保存节点的和和积,初始值都为0。
  2. 遍历链表中的每个节点:
    • 如果节点的值能整除K,则将其值加到sum中,然后将其值乘到product中。
  3. 返回 sumproduct
示例

以下是一个示例单链表的图示:

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是链表中的节点个数。通过遍历链表的方式,可以找到并计算符合条件的节点,从而得到它们的和与积。