首页 > 解决方案 > Python中链表的多重赋值

问题描述

最近我遇到了以下多重赋值,不知道它是如何交换两个节点的。我想交换链表中的两个节点。代码是:

head, head.next = head.next, head

https://leetcode.com/problems/swap-nodes-in-pairs/discuss/171788/Python-or-Dummynode上所见

有人可以分解步骤并告诉我该代码如何交换 head 和 head.next 吗?这让我很困惑。

标签: pythonlinked-list

解决方案


我对此有点挣扎,并想出了解释。

head, head.next = head.next, head

相当于代码

bob = head.next
alice = head
head = bob
head.next = alice

换句话说,它获取 head.next 和 head(分别由 bob 和 alice 表示)的快照(或评估),并将它们分配给 head 和 head.next

扩展多项任务有助于我理解它的作用。


推荐阅读