【发布时间】:2019-02-26 10:54:32
【问题描述】:
我正在解决一个 Leetcode 问题(问题 #21),它采用两个排序的链表并返回一个排序后的合并链表。例如,输入:1->2->4、1->3->4 和输出:1->1->2->3->4->4。
我对链表不是很有经验,但我正在尝试解决更多问题以获得曝光率。我的代码没有返回 [1,1,2,3,4,4] 的所需输出,而是返回 [4]。但是,我认为主要逻辑就在那里,我希望我遗漏了一些小东西。
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
newList = ListNode(0) # used for single, merged list
while l1 and l2:
if l1.val <= l2.val: # compare current node's values
newList.next = l1
l1 = l1.next
else:
newList.next = l2
l2 = l2.next
return newList.next # first node is 0, which we don't want
【问题讨论】:
-
这有两种基本的变体。一种是将两个列表合并到一个空列表中,另一种是将其中一个列表合并到另一个列表中,这可能会更快一些,因为有些时候,只需要对要合并到的列表的引用先进的,而不是必须设置链接。
标签: python sorting merge linked-list