老师 在合并两个有序链表的时候 cur = root
来源:4-5 Python数据结构常考题之链表
码农小杨
2019-03-21
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
root = ListNode(None)
# 这进行了赋值操作
cur = root
while l1 and l2:
if l1.val < l2.val:
node = ListNode(l1.val)
l1 = l1.next
else:
node = ListNode(l2.val)
l2 = l2.next
cur.next = node
cur = node
cur.next = l1 or l2
# 这里的root 为什么没有随着 cur变化
return root.next
老师 这里我有点不明白 为什么 上面的赋值操作完成之后 root 没有随着cur 的变化而变化 始终是创建的空node
写回答
1回答
-
之前的视频是有讲解过什么是变量、什么是对象的。
一开始你创建一个 ListNode节点对象,然后让 root 指向它。之后的赋值操作 cur = root,让 cur 和 root 都指向了这个变量。
之后每次创建一个新的节点,都让 cur 前移了。但是 root.next 一直指向的是你的第一个头结点,没有被改变过。
022019-03-22
相似问题