【发布时间】:2013-04-05 23:40:07
【问题描述】:
所以我写了一个代码,它应该在树中获取给定节点的父节点。这是伪代码。从根开始,
def parent(self, child):
if right child exists:
if the right child == child:
return self
else: self.right.parent(child)
if left child exists:
if the left child == child:
print('f')
return self
else: self.left._get_parent(node)
我一遍又一遍地遇到这个问题。
对于if the left child == child: 语句,如果该函数发现the left child == child 或the right child == child,则该函数会进入if 语句。
但是,return 语句不执行此操作。我知道这一点,因为当我写if the left child == child: 并在其后写print('f') 时,它确实打印了f,但是它没有返回self。有谁知道为什么,任何人都可以就如何解决这个问题给出解决方案?
另外,有谁知道如何同时返回两个语句而不是元组或列表? 比如我想返回1和2,
def x(n):
return 1, 2
这将返回(1, 2).. 有没有办法不将其作为元组返回?只是为了正常返回。我问这个是因为在递归方面,我想在 1 AS WELL AS 2 上调用相同的函数,而不是在元组 (1, 2) 上调用。
【问题讨论】:
-
1, 2是一个元组。括号是语法糖,真的。返回一个元组是返回多个值的 方式。只需 index 返回值或使用元组解包。
标签: python