所以我寫了一個代碼,該代碼應該可以獲取樹中給定節點的父代。這是僞代碼。從根開始,返回語句不執行
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:
聲明,函數DOES在找到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和2的相同函數,而不是在元組(1, 2)
上。
'1,2' ** **是一個元組。圓括號是句法糖,真的。返回一個元組是*返回多個值的方式。只需*索引*返回值或使用元組拆包。 – 2013-04-05 15:36:46