美文网首页
【LeetCode】129. Sum Root to Leaf

【LeetCode】129. Sum Root to Leaf

作者: Chiduru | 来源:发表于2020-11-05 01:15 被阅读0次

    【Description】
    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.

    An example is the root-to-leaf path 1->2->3 which represents the number 123.

    Find the total sum of all root-to-leaf numbers.

    Note: A leaf is a node with no children.

    Example:

    Input: [1,2,3]
    1
    /
    2 3
    Output: 25
    Explanation:
    The root-to-leaf path 1->2 represents the number 12.
    The root-to-leaf path 1->3 represents the number 13.
    Therefore, sum = 12 + 13 = 25.
    Example 2:

    Input: [4,9,0,5,1]
    4
    /
    9 0
    /
    5 1
    Output: 1026
    Explanation:
    The root-to-leaf path 4->9->5 represents the number 495.
    The root-to-leaf path 4->9->1 represents the number 491.
    The root-to-leaf path 4->0 represents the number 40.
    Therefore, sum = 495 + 491 + 40 = 1026.

    【Idea】
    跟求path的题差不多, 只不过这里是num*10+node.val 在每层递归里作参数传递罢辽。
    不再写了,木得意思
    similar:257。

    【Solution】

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def __init__(self):
            self.result = 0
    
        def sumNumbers(self, root: TreeNode) -> int:
            
            def recursion(root, num):
                if not root:
                    return  
                num = num*10+root.val
                if not root.left and not root.right:    # 叶子节点
                    self.result += num
                    return
    
                recursion(root.left, num)   
                recursion(root.right, num)
    
            recursion(root, 0)
            return self.result
    

    相关文章

      网友评论

          本文标题:【LeetCode】129. Sum Root to Leaf

          本文链接:https://www.haomeiwen.com/subject/mkznvktx.html