검지 Offer 문제 풀이 시리즈 - 20 두 갈래 트리 중 어느 값의 경로!!!

1414 단어 검지 Offer

제목 설명


두 갈래 나무의 루트 노드와 정수를 입력하고 두 갈래 나무의 결점 값과 정수를 입력하는 모든 경로를 출력합니다.경로는 나무의 뿌리 결점에서 시작하여 잎 결점까지 내려가는 결점으로 경로를 형성합니다.
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
import copy
class Solution:
    #  , 
    def FindPath(self, root, expectNumber):
        # write code here
        if root == None:
            return []
        ret = []
        
        support = [root]
        supportArrayList = [[root.val]]
        
        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(tmpNode.right.val)
                supportArrayList.append(newTmpArrayList)
            del supportArrayList[0]
            del support[0]
        return ret

좋은 웹페이지 즐겨찾기