python - 二叉搜索树查找最小值不清楚
问题描述
我试过的逻辑:
def min_tree_value(self):
while self.left:
self.left = self.left.left
return self.data
实际Python程序逻辑:
def min_tree_value(self):
if self.left is None:
return self.data
return self.left.min_tree_value()
实际的 Python 程序逻辑是递归形式的。我在 While loop() 中尝试了相同的逻辑
我不确定我的逻辑是否正确。请帮助我找出不正确的逻辑并指出我错了。
解决方案
您的逻辑几乎就在那里,但不完全是:
def min_tree_value(self):
node = self
while node.left:
# don't change the structure by rebinding node.left,
# but iterate the tree by moving along nodes!
node = node.left
return node.data
请注意,在原始代码中,您self
在返回其值之前永远不会重新分配,因此您始终返回根值。
推荐阅读
- xml - 如何使用 bat 文件将 XML 转换为 csv
- python - 正则表达式模式从 pyspark 中的单词中删除数值
- kotlin - 有没有一种简单的方法可以在 Kotlin IOS 中添加 UIButton 点击监听器?
- r - 使用朴素预测时二元运算符的非数字参数
- python - UnicodeDecodeError:“charmap”编解码器无法解码位置 191 中的字节 0x81:字符映射到
- sympy - 在 sympy 中创建高阶函数的最佳方法?
- regex - 如何在 Perl 中组合两种模式
- php - 重定向到 https 和目录不适用于移动 LTE/3G 连接
- flutter - 降级 Flutter 的构建错误
- yaml - 使用 yaml 和锚创建一个未转义的星。锚内的锚