python - Python中链表的多重赋值
问题描述
最近我遇到了以下多重赋值,不知道它是如何交换两个节点的。我想交换链表中的两个节点。代码是:
head, head.next = head.next, head
如https://leetcode.com/problems/swap-nodes-in-pairs/discuss/171788/Python-or-Dummynode上所见
有人可以分解步骤并告诉我该代码如何交换 head 和 head.next 吗?这让我很困惑。
解决方案
我对此有点挣扎,并想出了解释。
head, head.next = head.next, head
相当于代码
bob = head.next
alice = head
head = bob
head.next = alice
换句话说,它获取 head.next 和 head(分别由 bob 和 alice 表示)的快照(或评估),并将它们分配给 head 和 head.next
扩展多项任务有助于我理解它的作用。
推荐阅读
- html - 列表项 CSS 伪形状动态高度与菜单高度
- javascript - 可从 Javascript 访问的二进制资产,无需通过 XMLHttpRequest
- sql - 如何在 SQL 中将 2 个 Varchar 字符串转换为 DateTime
- google-fabric - 未交付的分配
- php - 循环 mysql 表并从 api 抓取更新内容
- apache-spark - Spark drop 复制源代码
- sql - sql db2 与 1 个带有一些空值的表连接
- c - C - 多重定义 main() K&R eclipse
- rest - OTRS 通过 REST-API 创建工单后发送电子邮件
- javascript - 无法将文本格式的 API 响应导出到 CSV 文件