【发布时间】:2021-07-01 20:00:24
【问题描述】:
当我运行以下代码并运行时,我试图跳过每个备用节点。
def skip_alternate_node(head):
current = head
while current.next:
current.next = current.next.next
return current
我无法理解为什么 current.next 在我什至没有移动电流的情况下工作。
换句话说,当我不做current = current.next 时,为什么current.next = current.next.next 有效?
current.next 是否也是堆栈上的指针,就像 current 指向堆上的分配一样?
【问题讨论】:
-
你要搬家了
current.next。 -
您正在修改节点的下一个值,而不是将当前更改为新节点
-
您在每次迭代中修改列表,从列表中删除旧的
current.next并用后面的节点替换它。它基本上删除了current之后的每个节点。 -
Python 不太适合作为您正在寻找的抽象级别的语言。无论如何,这样的问题不是 Stack Overflow 的话题。这不是一个讨论论坛,因此不是获得了解计算机科学帮助的地方。例如,您可以尝试reddit.com/r/learnprogramming。
-
@TomKarzes:这确实让我问为什么它被命名为
skip_alternate_node,而实际效果是“删除head之后的所有节点”。
标签: python linked-list singly-linked-list