我正在处理leetcode中的合并两个列表问题。这个问题需要以排序的方式合并两个链表。解决方案代码如下所示。在代码中,变量prev不断更新,最终只有一个节点来自l1或l2。然而,prehead似乎随时都会记住上一个下一个已执行。但是,它不会记住上一个=上一个下一个已执行。你知道吗
例如,如果您为l1 = 1->3->4, l2 = 1->2->4
运行此代码。最后:
prev = ListNode{val: 4, next: ListNode{val: 4, next: None}}.
prehead = ListNode{val: -1, next: ListNode{val: 1, next: ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 3, next: ListNode{val: 4, next: ListNode{val: 4, next: None}}}}}}}
prehead = ListNode(-1)
prev = prehead
while l1 and l2:
if l1.val <= l2.val:
prev.next = l1
l1 = l1.next
else:
prev.next = l2
l2 = l2.next
prev = prev.next
# exactly one of l1 and l2 can be non-null at this point, so connect
# the non-null list to the end of the merged list.
prev.next = l1 if l1 is not None else l2
return prehead.next
目前没有回答
相关问题 更多 >
编程相关推荐