簡體   English   中英

如何在 Python3 中使用遞歸輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM