1

因此,对于这两个函数,我输入如下内容:

 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)
4

1 回答 1

0

以下:

self.maxVal(root.right)

应该读

return self.maxVal(root.right)

否则,您将忽略递归调用的返回值。

也是如此minValue()

PS 由于这两种方法都不需要self,您可能需要考虑将它们转换为静态方法

于 2013-06-29T20:31:10.697 回答