[英]How to work with recursion output in Python3
我正在使用遞歸遍歷二叉樹以獲取最后的所有節點。 這工作正常,問題是,根據我的樹的高度,我在元組內的元組內得到元組。 我如何處理這樣的輸出?
def minimax(tree):
l = minimax_rec(tree.root)
print(len(l))
def minimax_rec(curr):
if curr.is_terminal():
return curr.val
else:
if curr.val == -1:
return minimax_rec(curr.left),minimax_rec(curr.mid),minimax_rec(curr.right)
else:
return curr.val, minimax_rec(curr.left),minimax_rec(curr.mid),minimax_rec(curr.right)
如果樹的高度是 3,我會得到這樣的結果:
(((9, 37, 5), (17, 8, 32), (29, 31, 25)), ((14, 7, 32), (2, 25, 28), (39, 1, 29)), ((18, 15, 38), (7, 21, 2), (2, 2, 35)))
隨着樹的高度增加,輸出也會增加,並且有大量的嵌套元組。 有沒有辦法只獲取包含這樣的值的元組?
((9, 37, 5), (17, 8, 32), (29, 31, 25), (14, 7, 32), (2, 25, 28), (39, 1, 29), (18, 15, 38), (7, 21, 2), (2, 2, 35))
由於我不知道你的樹或 curr 是什么樣子,代碼可能看起來有點愚蠢
def minimax(tree):
def minimax_rec(curr):
if curr.is_terminal():
return curr.val
else:
if curr.val == -1:
result = minimax_rec(curr.left),minimax_rec(curr.mid),minimax_rec(curr.right)
if isinstance(result[0], int):
result_list.append(result)
return result
else:
return curr.val,minimax_rec(curr.left),minimax_rec(curr.mid),minimax_rec(curr.right)
result_list = []
l = minimax_rec(tree.root)
print(result_list)
print(len(l))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.