我在udacity上做了一些实践问题,必须编写一些递归代码来查找节点中朋友的路径。我想出了这个。然而,递归定义缺少停止条件,我认为没有找到连接。我如何解决它?网络的在python中实现递归深度优先算法的错误
def path_to_friend(network, user_A, user_B,traversed = None):
if traversed is None:
traversed = []
if (user_B in network and user_A in network):
if user_B in get_connections(network,user_A):
return [user_A] + [user_B]
else:
for conn in get_connections(network,user_A) :
if conn in traversed:
continue
else:
traversed.append(conn)
return [user_A] + path_to_friend(network,conn,user_B)
else:
return None
数据结构:{ '鲍勃':[[ '卡罗尔'],[]], '爱丽丝':[[ '鲍勃'],[]], '卡罗尔':[[”鲍勃 '],[]]}
为了找到:path_to_friend(网络,' 鲍勃”, '爱丽丝')
结果:无限递归。我如何解决它?
你失踪,至少,因为当''LEN(网络)的条件== 0''。我认为它应该返回''None''或者什么 –
为什么你的值是列表的列表,什么是get_connections? –