📅  最后修改于: 2023-12-03 15:36:15.975000             🧑  作者: Mango
这个题目可以通过遍历两个链表元素的方法来实现。具体步骤如下:
下面是具体实现:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def get_bigger_linked_list(l1: ListNode, l2: ListNode) -> ListNode:
"""
:param l1: 第一个链表
:param l2: 第二个链表
:return: 新链表
"""
# 定义一个dummy节点,作为新链表头
dummy = ListNode(0)
cur = dummy
# 遍历第一个链表,将每个元素的值都加上第二个链表比它大的值
cur1 = l1
while cur1:
bigger_val = 0
cur2 = l2
while cur2:
if cur2.val > cur1.val:
bigger_val += cur2.val
cur2 = cur2.next
cur.next = ListNode(cur1.val + bigger_val)
cur1 = cur1.next
cur = cur.next
# 遍历第二个链表,将每个元素的值都加上第一个链表比它大的值
cur2 = l2
while cur2:
bigger_val = 0
cur1 = l1
while cur1:
if cur1.val > cur2.val:
bigger_val += cur1.val
cur1 = cur1.next
cur.next = ListNode(cur2.val + bigger_val)
cur2 = cur2.next
cur = cur.next
return dummy.next
这个方法时间复杂度为O(n^2),虽然不是最优解,但可以处理任意情况,与题目要求相符。