Python est un arbre binaire et une valeur de chemin

Une entrée arbre binaire noeud racine et un nombre entier, pour imprimer tous les chemins de l'arbre binaire et la valeur de nœud est une entrée entière. Une définition de chemin que le chemin de départ vers le nœud feuille connu à travers l'arbre du nœud racine à former. Valeur de retour dans la liste, une large gamme avant Array.

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


import copy


class Solution:
    def FindPath(self, root, expectNumber):
        if root == None:
            return []
        ret = []
        supportArrayList = [[root.val]]  # 对于每个节点来说,保存其路径,保存的是node的值
        support = [root]  # 当前的node,保存的是node,用来做广度优先遍历
        while support:
            tmpNode = support[0]
            tmpArrayList = supportArrayList[0]
            if tmpNode.left == None and tmpNode.right == None:
                if sum(tmpArrayList) == expectNumber:
                    ret.insert(0, tmpArrayList)
            if tmpNode.left:
                support.append(tmpNode.left)
                newTmpArrayList = copy.copy(tmpArrayList)
                newTmpArrayList.append(tmpNode.left.val)
                supportArrayList.append(newTmpArrayList)
            if tmpNode.right:
                support.append(tmpNode.right)
                newTmpArrayList = copy.copy(tmpArrayList)
                newTmpArrayList.append(newTmpArrayList)
                supportArrayList.append(newTmpArrayList)

            del supportArrayList[0]
            del support[0]

        return ret
Publié 135 articles originaux · louange gagné 121 · Vues 4859

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44208324/article/details/105315607
conseillé
Classement