![](/img/trans.png)
[英]How to compute the sum and the total number of nodes in a Binary Search Tree?
[英]Sum of number in a binary tree
我有一個可以包含兩個自然數或兩個更多列表的列表。 這些列表中的每一個還包含兩個整數或兩個進一步的列表,依此類推。 ei: [[4, 7], [[3, 5], [9, 1]]] 我需要使用遞歸來計算樹中所有數字的總和並編寫以下代碼:
def getSum(tree):
sum = 0
for elemente in tree:
if type(elemente)==int:
sum += elemente
else:
sum = getSum(elemente)
return sum
代碼不起作用,因為它總是返回 sum 為 12,所以我的問題是,我怎樣才能讓它工作但仍然使用遞歸? 我沒有正確識別基本情況嗎?
您可以這樣做:
def getSum(tree):
sum = 0
for elemente in tree:
if type(elemente)==int:
sum += elemente
else:
sum += getSum(elemente)
return sum
tree = [[4, 7], [[3, 5], [9, 1]]]
print(getSum(tree))
29
或者,您可以在遞歸循環之外跟蹤sum
。
例如像這樣:
def getSum(tree, sum = None):
sum = sum or 0
for elemente in tree:
if type(elemente)==int:
sum += elemente
else:
sum = getSum(elemente, sum)
return sum
tree = [[4, 7], [[3, 5], [9, 1]]]
print(getSum(tree))
29
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.