题目
1
2
3
4
5
6
7
给你一个链表的头 head ,每个结点包含一个整数值。
在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数 。
请你返回插入之后的链表。
两个数的 最大公约数 是可以被两个数字整除的最大正整数。
解题思路
- 首先需要思考如何计算最大公约数 ```bash def gcd(a,b): while b: a,b = b, a%b return a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2. 然后请回忆链表相关知识(完全忘记了
```bash
curr = head
while curr and curr.next:
a,b = curr.val, curr.next.val
g=gcd(a,b)
new_node = ListNode(g)
new_node.next = curr.next
curr.next = new_node
curr = new_node.next
return head
这道题刚看到完全无从下手,感谢G老师!请复习链表相关知识以及简单的,计算最大公约数,最小公约数,最大公倍数,最小公倍数
最大公倍数LCM
两个或多个整数共有的最小的非零倍数。
1
2
def lcm(a, b):
return abs(a * b) // gcd(a, b)