老师,下面问题麻烦帮忙看下,不太懂

来源: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回答

PegasusWang

2019-03-22

//img.mukewang.com/szimg/5c94f8d90001d11124860980.jpg


画个图你就明白了,上边是

cur.next = node,让当前的cur的下一个节点指向新创建的节点,之后让 cur 指向它。

如果你先让 cur = node,然后cur.next =node 就会发现实际是自己指向自己,而且 上一个 cur 指向的节点与新创建的节点断开了。

0
2
PegasusWang
回复
慕移动7006633
涉及到链表的如果搞不明白,最好纸上画画图就比较容易理解了
2019-03-25
共2条回复

Python工程师面试宝典 一线大厂资深面试官亲授

Python工程师面试必看,资深面试官亲授,倍增面试成功率

1035 学习 · 102 问题

查看课程