如何解决建立节点链?
我有一个Node类。然后,我正在构建一个节点链。 它们通过self.prev_node和self.next_nodes相互连接, 还有Chain:self.last拥有到链的最后一个元素的链接。 我正在使用类似的方法来添加新节点:
class Node(object):
def __init__(self,next_nodes=[],prev_node=None):
self.next_nodes = next_nodes
self.prev_node = prev_node
class Chain:
def __init__(self):
self.start = Node()
self.last = self.start
def add_node(self,node):
node.prev_node = self.last
self.last.next_nodes.append(node)
self.last = node
问题是,如果我添加几个节点:
c.start.next_nodes
[Node:2,Node:3,Node:4]
c.start.next_nodes[0].next_nodes
[Node:2,Node:4]
应该是:
c.start.next_nodes
[Node:2]
c.start.next_nodes[0].next_nodes
[Node:3]
由于某种原因,next_nodes列表似乎重复/相同。
我做错了什么?
解决方法
您要在 init 中传递可变的[[]]作为参数。
因此,您创建的每个节点都指向相同的内存位置,因此以所有相同的“ next_nodes”结尾。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。