老师,下面问题麻烦帮忙看下,不太懂
来源:4-6 Python数据结构常考题之二叉树

慕移动7006633
2019-03-22
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 = l2 or l1
return root.next
老师,在合并两个有序链表的时候,上面的代码,
cur.next = node
cur = node
这两句为什么一定要先写cur.next=node, 不能先写cur=node?
写回答
1回答
-
画个图你就明白了,上边是
cur.next = node,让当前的cur的下一个节点指向新创建的节点,之后让 cur 指向它。
如果你先让 cur = node,然后cur.next =node 就会发现实际是自己指向自己,而且 上一个 cur 指向的节点与新创建的节点断开了。
022019-03-25
相似问题