我正在使用递归遍历二叉树,以获得最后的所有节点。这很好用,问题是,根据我的树的高度,我可以在元组中的元组中获取元组。我该如何处理这样的输出?
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)) 发布于 2018-10-18 10:48:59
因为我不知道你的树或者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))https://stackoverflow.com/questions/52864743
复制相似问题