树+ python中的递归问题

时间:2011-03-02 19:40:55

标签: 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)时,它首次运行recurses并执行叶节点部分,但返回一个None值。

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

任何人都可以告诉我在这个递归函数中我做错了什么....

非常感谢..

1 个答案:

答案 0 :(得分:0)

快速猜测,修复:

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

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