【发布时间】:2021-07-04 03:10:23
【问题描述】:
我写了一些与链表、ListNode 类相关的代码。代码的目的是将两个排序的链表合并为一个大的排序链表。
所以,例如
输入:L1 = [1,2,4],L2 = [1,3,4]
输出:[1,1,2,3,4,4]
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
prehead = ListNode(-1)
if l1 and l2 == None:
return None
if l1 == None:
return l2
if l2 == None:
return l1
prev = prehead
curr1 = l1
curr2 = l2
while curr1 and curr2:
if curr1.val <= curr2.val:
prev.next = curr1
curr1 = curr1.next
elif curr1.val >= curr2.val:
prev.next = curr2
curr2 = curr2.next
prev = prev.next
return prehead.next
上面的代码返回 [1,1,2,3,4] 作为输出,而不是正确答案 [1,1,2,3,4,4],我知道为什么;这是因为当我们到达 L1 的最后一个元素时,while 循环停止并且不考虑 L2 的最后一个元素。
我已尝试更改代码,尤其是将“while curr1 和 curr2”行改为“while L1 和 L2”:....
但这会为以下行“if curr1.val
任何想法 1. 如何修改代码以产生正确的输出和 2. 为什么我在更改 while 行时收到该错误?
谢谢
【问题讨论】:
标签: python linked-list