-2
讓我重寫我的問題,使其更清晰。我在LeetCode問題上遇到了一個問題:驗證二叉搜索樹。python遞歸類變量
我的第一個解決方案看起來是這樣的:
class Solution(object):
def recursion(self, input, var_x, ans):
#update var_x
#update ans
self.recursion(input, var_x, ans)
def mySolution(self, input):
ans = []
var_x = 0
self.recursion(input, var_x, ans)
return ans
該方案未能通過測試。但是,在我做了一個簡單的更改後,它會通過:
class Solution(object):
def recursion(self, input, ans):
#update self.var_x
#update ans
self.recursion(input, ans)
def mySolution(self, input):
ans = []
self.var_x = 0
self.recursion(input, ans)
return ans
聲明var_x與self.var_x有什麼區別?我認爲這兩個問題在這個問題上具有相同的效果,但是其中一個通過測試而另一個不通過?
請檢查您的縮進。 –
令人驚訝的是,由於您仍然執行'prev = node'(no'self.prev'),所以它效果更好。請提供一個(正確縮進)[mcve] –
由於這是某種編碼競賽網站,我不想多說,但你可能誤解了他們提交數據的方式。看起來你正在獲得一個壓縮二叉樹的數組表示,其中節點N的子節點編號爲2N和2N + 1。相比之下,你似乎在用節點對象構建一棵真正的樹,這可能是......過度殺傷。 –