多嵌套树python中递归的突破
我有一个多嵌套的树结构,我试图找到提供的字符串/节点的当前级别。我使用递归遍历节点并返回当前级别多嵌套树python中递归的突破,python,recursion,Python,Recursion,我有一个多嵌套的树结构,我试图找到提供的字符串/节点的当前级别。我使用递归遍历节点并返回当前级别 def dicq(self,value,current_level): d = {} for child in self.children: if child.name == value: print current_level else: (child.dicq(value,current_level+1)) re
def dicq(self,value,current_level):
d = {}
for child in self.children:
if child.name == value:
print current_level
else:
(child.dicq(value,current_level+1))
return current_level
root.dicq('7.3',1)
root是嵌套的树结构,我给它7.3(我找到的节点级别)和1(默认级别表示第一个子节点)。如果我只是在If语句中打印当前的\u级别,它是正确的,但是如果我在If语句中输入return,它不会返回。我想在找到节点后立即返回当前级别。有什么建议吗?现在,您的代码正在返回当前的\u级别,无论您要查找的节点是否找到。 仅当找到匹配节点时,才需要返回
当前\u级别
。如果不是,则返回指示未找到匹配节点的内容。此外,您需要确保结果正确地跨递归级别传播,并且在找到匹配项时停止进一步查找
下面的代码可能会有所帮助。注意:我没有测试它
def dicq(self,value,current_level):
d = {}
retval = -1
for child in self.children:
if child.name == value:
retval = current_level
else:
retval = child.dicq(value,current_level+1)
if retval != -1:
break
return retval
如果找到
值
,将返回该级别。如果没有,将返回-1
,表明在树的该部分的任何位置都找不到它。现在,您的代码将返回当前级别的,无论您要查找的节点是否找到。
仅当找到匹配节点时,才需要返回当前\u级别
。如果不是,则返回指示未找到匹配节点的内容。此外,您需要确保结果正确地跨递归级别传播,并且在找到匹配项时停止进一步查找
下面的代码可能会有所帮助。注意:我没有测试它
def dicq(self,value,current_level):
d = {}
retval = -1
for child in self.children:
if child.name == value:
retval = current_level
else:
retval = child.dicq(value,current_level+1)
if retval != -1:
break
return retval
如果找到值
,将返回该级别。如果没有,将返回-1
,表明它在树的该部分的任何位置都找不到。是的,谢谢,我为一件简单的事情发疯了:(是的,谢谢,我为一件简单的事情发疯了:(