leetcode 129

1589 단어 leetcode
이 문제는 뿌리 노드에서 잎 노드까지의 모든 값의 총계를 찾으려고 한다.이 문제는 전통적인 귀속 방법을 사용하지만 두 개의 구덩이가 주의해야 한다. 우선 우리가 귀속할 때 보존해야 할 것은 문자열이지 수치가 아니다. 왜냐하면 수치라면 나무의 높이를 알아야 하기 때문이다. 나무의 좌우 자목의 높이가 다르고 그에 대응하는 루트가 다르기 때문이다.val의 멱 횟수는 다르다.그러나 상층부로 고도를 돌릴 때 어느 높이로 돌아갈지 모르기 때문에 안 된다.그 다음으로 돌아가는 밑바닥은 None이 아니라 수치가 있는 것부터 시작해야 한다.None에서 시작하면 모든 높이의 자목을 훑어보는 셈이기 때문이다.푸!여기에 쓰다가 갑자기 수치를 저장하는 것이 가능하다는 것을 알게 되었다. 제목은 가장 높은 나무의 값만 원하기 때문에 수치라면 그 가장 높은 것을 저장하면 된다.
코드는 다음과 같습니다.
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    
    def sumNumbers(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        def temp(root):
            if root == None:
                return
            if root.left == None and root.right == None:
                return [str(root.val)]
            left_value = temp(root.left)
            right_value = temp(root.right)
            temp_result = []
            if left_value != None:
                for tempp in left_value:
                    temp_result.append(str(root.val)+tempp)
            if right_value !=None:
                for tempp in right_value:
                    temp_result.append(str(root.val)+tempp)
            return temp_result
        result_list = temp(root)
        result = 0
        if result_list == None:
            return result
        for temp in result_list:
            result += int(temp)
        return result

좋은 웹페이지 즐겨찾기