trees+python中的递归问题

2024-05-20 14:10:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想说的是,这是一个家庭作业,但不是在寻求与代码相关的帮助。在

我有个奇怪的问题。我试图实现一个btree删除,但有一些递归返回问题

def delete ( tree , node , value ) :
     if node.leaf == True:
          # delete value from node 
          return tree

     elif node.leaf == False and value in node:
           # do other stuff

     else :
          delete(tree,node.Child,value)
          #recurse till you find leaf node

这只是一个伪代码,因为我不能在这里发布我的全部代码。接下来的问题是

当我写delete(Tree,Tree.root,value)时,它第一次运行递归并执行叶节点部分,但返回一个None值。在

我已经检查了所有的东西,甚至打印了return tree语句上面的内容,树在那里有一些值就可以了。在

有谁能告诉我,我在这个递归函数中做错了什么。。。。在

非常感谢。。在


Tags: 代码fromnodetruetreereturnifvalue
1条回答
网友
1楼 · 发布于 2024-05-20 14:10:48

一个快速的猜测,修正到:

 ...
 else:
      return delete(tree,node.Child,value) # you missed the return here
 ...

我想您应该递归到节点的所有子节点中,而不仅仅是一个子节点(可能不止一个,对吧?)。在

相关问题 更多 >