gpt4 book ai didi

python - 如何使用递归函数检查两个节点是否连接

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:43 25 4
gpt4 key购买 nike

在一次采访中,我最近被问到了类似的问题,如下所示:我必须构建一个递归函数来显示两个节点是否已连接。我怎样才能使下面的代码工作?有没有办法“通过引用”传递 a、b、c,以便当它们实例化时,当我调用 check_connection 时,这是有效的。 Node 是一个可变对象,因此它应该像通过引用一样运行,但情况似乎并非如此,因为存在错误:“NoneType 不可迭代”。如有任何建议,我们将不胜感激。

class Node():
def __init__(self, neighbours):
self.neighbours=neighbours

def return_neighbours(self):
return self.neighbours

def check_connection(first, second):
connections=first.return_neighbours()
for conection in connections:
if second in conection:
return True
else:
check_connection(conection,second)

a=None
b=None
c=None

a=Node(neighbours=[c])
b=Node(neighbours=[c])
c=Node(neighbours=[a,b])

check_connection(a,c)

最佳答案

问题是 None 不是可变对象。您不应将 a、b、c 设置为 None,而应将它们设置为没有邻居的节点。这样它们就会被随后的声明所改变。目前,a 的邻居不是 c 而是 None,因为 c 只是一个指向 None 的变量,而不是对 Node 对象的引用。

关于python - 如何使用递归函数检查两个节点是否连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com