需要澄清python linkedlist中的node.next指针吗
我很难理解python中的传递值属性。在下面的代码中,需要澄清python linkedlist中的node.next指针吗,python,linked-list,deep-copy,shallow-copy,Python,Linked List,Deep Copy,Shallow Copy,我很难理解python中的传递值属性。在下面的代码中,runner正在复制current和runner。next指向给定链接列表的下一个节点,而我们将runner.next设置为runner.next.next,这对cur.next.next有何影响?runner.next和cur.next都指向同一地址吗?因为在我看来,runner只是current的一个副本,它无法访问原始cur.next。请教训我 def remove_dups_followup(ll):
runner
正在复制current
和runner。next
指向给定链接列表的下一个节点,而我们将runner.next
设置为runner.next.next
,这对cur.next.next
有何影响?runner.next
和cur.next
都指向同一地址吗?因为在我看来,runner只是current的一个副本,它无法访问原始cur.next。请教训我
def remove_dups_followup(ll):
if ll.head is None:
return
current = ll.head
while current:
runner = current
while runner.next:
if runner.next.value == current.value:
runner.next = runner.next.next
else:
runner = runner.next
current = current.next
return ll.head
这不会创建current
的副本,而是为对象指定另一个名称,也称为current
。因此,runner
和current
只是同一对象实例的两个不同名称。因此,对runner
状态的任何更改也会影响current
,至少在runner
被重新分配到列表中的下一个节点之前是如此
runner = current