微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

建立节点链?

如何解决建立节点链?

我有一个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 举报,一经查实,本站将立刻删除。