python - 简单的链表队列

标签 python python-3.x algorithm data-structures linked-list

所以在第一个代码中,我让 a.next=b。这意味着 a.next 和 b 都充当对 Node6 的引用。所以当我做 b=None.. 为什么 a.next 仍然指向 Node6,

在第二个代码中,当我使用 aking c=a 时,c 和 a 都是对节点 5 的引用。现在我使用 c.next=None,但是这个更改也被反射(reflect)到 a 中。甚至 a.next 也变成 None。

这两个代码我都做了相同的步骤,为什么更改只反射(reflect)在代码 2 中?

class Node:

     def __init__(self, x):
         self.val = x
         self.next = None

a=Node(5)
b=Node(6)
a.next=b
b=None
while a is not None:
    print(a.val)
    a=a.next

代码 2

class Node:
     def __init__(self, x):
         self.val = x
         self.next = None

a=Node(5)
b=Node(6)
a.next=b
c=a
c.next=None
while a is not None:
    print(a.val)
    a=a.next

最佳答案

让我用图表来解释: enter image description here

情况1:列表a在链表中有两个节点5和6。 但是情况 2:列表 ac 在链表中有一个节点 5。而另一个链表由b指向,它只有6。

希望这能澄清您的疑问。

注意: - 由于 a、b、c 是存储地址的指针。当你执行c.next=None时,c(也就是a所指向)指向的地址next的值变为None。

关于python - 简单的链表队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57755407/

相关文章:

python - Python 3.x 中的类型化隐式转换(强制)是否可能?

python - 使子进程超时

python - 云功能中的 spacy 模型不起作用

Python(最新版本)语法错误

python - Jupyter笔记本: Tornado pointing to incorrect path

c# - 从邻接信息列表中查找路径

java - 使用递归方法添加二维数组

python - 列表结构比较

python - 在 Python 中将频率转换为音符

algorithm - 一种绘制等距曲线的方法