【发布时间】:2020-02-21 08:59:03
【问题描述】:
在下面的链表问题中,'dummy' 和 'cur' 被分配给头部。所有操作均使用 cur 进行。但是当 dummy 返回时,这些更改会反映在那里。
sn-p 在下面
def mergeTwoLists1(self, l1, l2):
dummy = cur = ListNode(0)
while l1 and l2:
if l1.val < l2.val:
cur.next = l1
l1 = l1.next
else:
cur.next = l2
l2 = l2.next
cur = cur.next
cur.next = l1 or l2
return dummy.next
怎么会这样?
【问题讨论】:
-
他们列出了吗?
-
dummy 和 cur 都是对 ListNode(0) 的引用 - 因此对其中一个的更改会影响另一个。您需要使用两个单独的分配将 ListNode(0) 分配给 dummy 和 cur,以便它们引用 ListNode 的单独实例。
-
@HolyMackerel。不,你真的不想那样做。这样做的重点是保留对列表头部的引用。
标签: python variables linked-list output variable-assignment