Python 最近的叶节点解决方案未返回
我想打印距离二叉树中特定节点最近的叶节点。我在定义的函数中得到了正确答案,但无法返回该答案。 链接到问题:您试图通过引用传递“最近的”,但Python中的参数是通过赋值传递的 您有(为简洁起见删去了几行): 当您传递最接近minimumDistanceHelper时,由于最接近是一个不可变的整数,因此minimumDistanceHelper中的最接近参数不会引用与minimumDistance函数中声明的最接近对象相同的对象。因此,minimumDistance的返回值始终为root.key 有两种方法可以解决这个问题。更好的方法是返回“从minimumDistanceHelper最近”的值。minimumDistanceHelper的结尾将类似于Python 最近的叶节点解决方案未返回,python,python-3.x,algorithm,data-structures,Python,Python 3.x,Algorithm,Data Structures,我想打印距离二叉树中特定节点最近的叶节点。我在定义的函数中得到了正确答案,但无法返回该答案。 链接到问题:您试图通过引用传递“最近的”,但Python中的参数是通过赋值传递的 您有(为简洁起见删去了几行): 当您传递最接近minimumDistanceHelper时,由于最接近是一个不可变的整数,因此minimumDistanceHelper中的最接近参数不会引用与minimumDistance函数中声明的最接近对象相同的对象。因此,minimumDistance的返回值始终为root.key
def minimumDistanceHelper(root, node, closest):
closest = root.key
print("closest:", closest)
def minimumDistance(root, node):
closest = root.key
minimumDistanceHelper(root, node, closest)
return closest
然后在minimumDistanceHelper中使用
closest = [root.key]
但请注意,这是如何写入最近的第0个索引的,而不是最近的索引本身。如果你要用
closest[0] = root.key
我们也会遇到同样的问题,最接近的新版本将不是原始版本。预期输出是什么?当前,您的代码返回me12的
10
。您的程序输出多个数字。预期的输出是什么?错误,否。参数是通过引用传递的,而不是通过值传递的。但是,对变量的赋值对引用的对象没有任何作用。强制性链接是“通过引用传递”对我来说的意思,但对这些术语的含义存在分歧。
closest = [root.key]
closest[0] = root.key
closest = [root.key]