內的功能,我在新通用和Python特別是OOP和無法理解下面的代碼。它用於HackeRank問題。我沒有得到它的聲明中如何使用檢查。它只是應該返回一個布爾值。調用其聲明
def check(root,mini,maxi):
return(root==None or
(check(root.left,mini,root.data) and
check(root.right,root.data,maxi)))
內的功能,我在新通用和Python特別是OOP和無法理解下面的代碼。它用於HackeRank問題。我沒有得到它的聲明中如何使用檢查。它只是應該返回一個布爾值。調用其聲明
def check(root,mini,maxi):
return(root==None or
(check(root.left,mini,root.data) and
check(root.right,root.data,maxi)))
使用中本身就是一個函數被調用recursion.When一個函數被調用本身內對以前運行call.This遞歸然後再次調用自身到它在推動每個函數調用堆棧和完成每次遞歸函數調用結果在函數調用這是這恰好是最新的調用函數堆棧的頂部大跌眼鏡。因此,在本身內部調用檢查時,將導致另一個呼叫被激活檢查,並且第二個呼叫返回的值將用於調用它的呼叫中。根據程序的條件可能會發生任意次數。我希望這有幫助。或者你可以閱讀關於遞歸。
你可以看到@ helptaker的解釋遞歸。在這種情況下,我假設函數檢查數據的左右兩半,除非它是空的。然後它將採用這些遞歸調用的結果並將它們結合起來。
所以在你的例子中,基本情況是root==None
,這可能是當數據變得足夠小時。否則,這個函數會自動調用兩個較小的問題。這兩個遞歸調用將返回它們的結果,並且該函數將根據這些結果確定其返回值。
總之這個功能將下降問題分解成越來越小的碎片,並解決他們每個人相結合的結果。
下面是遞歸的一些資源:
(如果你搜索在谷歌 「遞歸」,它甚至會顯示「你的意思是:recursio ñ「爲例)
這就是所謂的遞歸。 https://en.wikipedia.org/wiki/Recursion_(computer_science) –
你要搜索的術語是「遞歸」。去看看這個。 – user2357112