二叉树查找python_在二叉树中查找最小值,Python

这篇博客探讨了在Python中查找二叉树最小值的问题,指出Python参数按值传递而非引用,导致直接修改参数无法在函数外部生效。文章通过示例解释了如何正确实现递归查找最小值,并讨论了Python中的可变对象特性,如列表的“+=”运算符如何就地修改对象。
摘要由CSDN通过智能技术生成

迈克尔的回答解释了你处理问题的方式,但他没有解释你目前的尝试有什么问题。据我所知,您的策略是检查每个节点,并在运行时跟踪最低值,使用递归查找所有节点。检查完所有节点后,就知道结果是整个树的最小值。这是一个非常有效的方法,而且它本来会起作用的,只是论点并不像你期望的那样起作用。

Python按值传递参数,而不是引用。当使用“min_t=root.key”为min_t赋值时,它仅在函数内部生效。函数的调用方看不到新值。

您可以使用一些简单的代码对此进行测试:def add_one_to(x):

x = x + 1

print "add_one_to", x

x = 2

add_one_to(x)

print x

当您运行代码时,您可以看到x在函数中是递增的,而不是在顶层。

这也适用于函数调用自身时。每个调用都有自己的一组局部变量,并且分配给函数内部的局部变量不会影响调用它的实例。

注意,有些语言确实允许通过引用传递参数。如果通过引用传递参数,则在函数内分配该参数也将影响调用方。如果Python是其中一种语言,您可以将min_t设为引用参数,并且您的函数将正常工作。

虽然Python不直接支持引用参数,但您也可以将引用参数视为一个值,在调用函数时该值将进入函数,在函数完成时也将返回给调用方。你可以分别做这两件事。要将值传递回调用方,请返回该值。然后,调用者可以将该函数分配给它的本地函数,而您基本上已经通过引用传递了一个参数。

以下是如何将其应用于上述示例的方法:def add_one_to(x):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值