遞迴最大深度

2021-09-20 08:53:17 字數 348 閱讀 6877

題外話:由於遞迴深度可控,一般寫類似遞迴的方法時盡量使用迭代器,例如fibonacci數列,在python高階中我會把迭代器實現fibonacci數列的方法貼出來,而不是用遞迴。

遞迴深度盡量不去修改,用起來也會很繞。下面我貼出來如何測試出本機遞迴深度:

def func(num):

if num == 1:

return 1

else:

return num * func(num-1)

print(func(998)) # 這台機子的遞迴最大深度998,這裡數字自己在997-999之間修改,不同機器預設的遞迴深度不同

求出計算機的最大遞迴深度

由於計算機棧的記憶體有限,而函式遞迴會呼叫到棧,所以函式的遞迴深度有限 用以下的 可以求出在本機最大遞迴深度,用二分法測出來的。python和c 差這麼多的原因可能是編譯器分配的棧記憶體不同 棧的記憶體可以自己調整 python def get dep num if num 1 return 1el...

求二叉樹的最大深度(遞迴 非遞迴)

力扣104也有該題,可以使用上面進行驗證。當節點為空時,返回0。不為空時,當前節點為根節點的子樹深度為 左子樹深度 右子樹深度 1。求二叉樹的最大深度 param root return public int maxdepth treenode root return math.max maxdep...

LeetCode 二叉樹最大深度(遞迴)

給定乙個二叉樹,編寫乙個函式來獲取這個樹的最大寬度。樹的寬度是所有層中的最大寬度。這個二叉樹與滿二叉樹 full binary tree 結構相同,但一些節點為空。每一層的寬度被定義為兩個端點 該層最左和最右的非空節點,兩端點間的null節點也計入長度 之間的長度。示例 1 輸入 1 3 2 5 3...