我不熟悉如何從Python中的遞歸函數調用中喚起返回調用。在這個例子中,我正在寫'檢查是否是二叉樹方法',它必須返回true或false。但是,如果我從另一個函數調用它(即使我打我的條件),我不會得到False返回。從Python中的遞歸調用鼓起返回值
我怎樣才能確保這個回訪電話一路順利?
def isValidTree(root, tempArr):
if(root.left):
return isValidTree(root.left, tempArr)
if(len(tempArr) == 0):
tempArr.append(root.data)
elif(tempArr[len(tempArr) - 1] >= root.data):
return False
else:
tempArr.append(root.data)
if(root.right):
return isValidTree(root.right, tempArr)
def isBinarySearchTree(root):
print(isValidTree(root, []))
A部分:在您若情況下,你是返回在兩種情況下無(儘管隱含的)。 B部分:你想要這個tempArr做什麼。如果這恰好是一個二進制數組獲取所有的葉值? – Vasif
另外,您正在返回'False'作爲字符串。這是一個真正的價值。嘗試將False作爲關鍵字返回。 – Vasif
@Vasif我應該爲此明確地返回一些東西在我的情況下?臨時數組添加樹的每個葉子(通過遍歷),然後檢查數組中的前一個值是否按正確的順序排列。即一個值1,2,3,4,5的BST應該是這樣的順序。 – Xelad1