루트 대 리프 번호 합계
root
에서 0
까지의 숫자만 포함하는 이진 트리의 9
가 제공됩니다.트리의 각 루트-리프 경로는 숫자를 나타냅니다.
1 -> 2 -> 3
는 숫자123
를 나타냅니다. 루트에서 리프까지의 모든 수의 총합을 반환합니다. 답변이 32비트 정수에 맞도록 테스트 케이스가 생성됩니다.
리프 노드는 자식이 없는 노드입니다.
예 1:
입력: 루트 = [1,2,3]
출력: 25
설명:
루트-리프 경로
1->2
는 숫자12
를 나타냅니다.루트-리프 경로
1->3
는 숫자13
를 나타냅니다.따라서 sum = 12 + 13 =
25
입니다.예 2:
입력: 루트 = [4,9,0,5,1]
출력: 1026
설명:
루트-리프 경로
4->9->5
는 숫자 495를 나타냅니다.루트-리프 경로
4->9->1
는 숫자 491을 나타냅니다.루트-리프 경로
4->0
는 숫자 40을 나타냅니다.따라서 sum = 495 + 491 + 40 =
1026
입니다.제약:
[1, 1000]
범위에 있습니다. 0 <= Node.val <= 9
10
를 초과하지 않습니다. 해결책:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def sumNumbers(self, root: Optional[TreeNode]) -> int:
paths = [(root, root.val)]
i = 0
total = 0
while i < len(paths):
curr, val = paths[i]
if curr:
if not curr.left and not curr.right:
total += val
if curr.left:
paths.append((curr.left, 10 * val + curr.left.val))
if curr.right:
paths.append((curr.right, 10 * val + curr.right.val))
i += 1
return total
Reference
이 문제에 관하여(루트 대 리프 번호 합계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/sum-root-to-leaf-numbers-1g8b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)