关于为什么这两个最大/最小值函数不适用于python中的BST的任何想法?

时间:2013-06-29 20:29:10

标签: python recursion binary-search-tree

所以,在这两个函数的情况下,我输入了类似的东西:

 BSTTree.maxValue(BSTTree.root)

让我们说BST看起来像这样:

     6
    / \
   3   7
        \
         8
          \ 
           9

对于最大值,它返回“无”值。如果我打印出每个根值,它将在8 ...:/

停止打印

有什么想法吗?

def maxValue(self, root):

    if (root.right is None):
        return root.value

    if (root.right is not None):

        self.maxVal(root.right)
        print root.value




def minValue(self, root):

     if (root.left is None):
        return root.value

     else:
         if (root.left is not None):
            self.minValue(root.left)

1 个答案:

答案 0 :(得分:0)

以下内容:

self.maxVal(root.right)

应该阅读

return self.maxVal(root.right)

否则你忽略了递归调用的返回值。

minValue()同样如此。

P.S。由于这两种方法都不需要self,因此您可能需要考虑将其转换为static methods