所以,在这两个函数的情况下,我输入了类似的东西:
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)
答案 0 :(得分:0)
以下内容:
self.maxVal(root.right)
应该阅读
return self.maxVal(root.right)
否则你忽略了递归调用的返回值。
minValue()
同样如此。
P.S。由于这两种方法都不需要self
,因此您可能需要考虑将其转换为static methods。