📅  最后修改于: 2023-12-03 15:07:21.180000             🧑  作者: Mango
在单链接列表中,要求编写一个程序,计算出所有偶数节点的和,并计算出所有节点值的乘积。以下是对这个问题的解释以及样例。
首先,假设该列表为以下单链接列表:
1 -> 2 -> 3 -> 4 -> 5 -> 6
根据题目要求,我们需要计算所有偶数节点的和以及所有节点值的乘积。
因此,我们需要先遍历整个链表,找到所有偶数节点并计算它们的和。 在上述例子中,我们可以计算出 2 + 4 + 6 = 12。
接着,我们需要计算所有节点值的乘积。这也很容易,我们只需要遍历整个链表,让每个节点值相乘即可。在上述例子中,我们可以计算出 1 x 2 x 3 x 4 x 5 x 6 = 720。
以下是一个实现以上示例代码的Python代码示例:
class ListNode:
def __init__(self, val=None):
self.val = val
self.next = None
def even_sum_and_product(head: ListNode) -> [int, int]:
# 初始化求和值和乘积值
even_sum, product = 0, 1
while head:
# 如果该节点值为偶数,则将其加入偶数和中
if head.val % 2 == 0:
even_sum += head.val
# 将该节点值乘到总乘积中
product *= head.val
# 移动到下一个节点
head = head.next
return [even_sum, product]
以下是对以上内容的Markdown代码片段:
# 单链接列表的所有偶数和节点的和与乘积
在单链接列表中,要求编写一个程序,计算出所有偶数节点的和,并计算出所有节点值的乘积。以下是对这个问题的解释以及样例。
## 示例
首先,假设该列表为以下单链接列表:
1 -> 2 -> 3 -> 4 -> 5 -> 6
根据题目要求,我们需要计算所有偶数节点的和以及所有节点值的乘积。
因此,我们需要先遍历整个链表,找到所有偶数节点并计算它们的和。 在上述例子中,我们可以计算出 2 + 4 + 6 = 12。
接着,我们需要计算所有节点值的乘积。这也很容易,我们只需要遍历整个链表,让每个节点值相乘即可。在上述例子中,我们可以计算出 1 x 2 x 3 x 4 x 5 x 6 = 720。
## 代码实现
以下是一个实现以上示例代码的Python代码示例:
```python
class ListNode:
def __init__(self, val=None):
self.val = val
self.next = None
def even_sum_and_product(head: ListNode) -> [int, int]:
# 初始化求和值和乘积值
even_sum, product = 0, 1
while head:
# 如果该节点值为偶数,则将其加入偶数和中
if head.val % 2 == 0:
even_sum += head.val
# 将该节点值乘到总乘积中
product *= head.val
# 移动到下一个节点
head = head.next
return [even_sum, product]