题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个链表,现在在每两个节点空隙插入一个节点,值为左右节点值的最大公约数,求最终的链表。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
def rcd(i:int, j:int):
while i % j != 0:
i, j = j, i % j
return j
class Solution:
def insertGreatestCommonDivisors(self, head: Optional[ListNode]) -> Optional[ListNode]:
# if not head.next:
# return head

left, right = head, head
while left.next:
right = left.next
new_node = ListNode(rcd(left.val, right.val), right)
left.next = new_node
left = right
return head