【发布时间】:2021-10-12 21:30:10
【问题描述】:
我在 2 周后就被这个问题困住了。
我在 Python 中有一个基本的树节点类:
class Node:
def __init__(self, data):
self.data= data
self.children = []
self.parent = None
然后我有一个通用的递归搜索功能:
def find_node(node, data):
if node.data == data:
return node
if len(node.children)>0:
for child in node.children:
find_node(child, data)
我不明白为什么 Python 只在我传递给 find_node 函数的每个“数据”的第一次出现时进行搜索。
我总是传递根节点,然后是标识我正在寻找的节点的字符串。
真的把我的头撞到墙上了。
【问题讨论】:
-
它返回无
-
什么是数据类型?字符串?诠释?也许你应该使用 is 而不是 ==
-
这是一个简单的字符串。我会试一试,泰。没有。没有解决。
-
您确定正确添加了孩子吗?好像你没有 add_child 功能
-
您不需要
add_child函数,您只需node.children.append(child)
标签: python tree recursive-datastructures