1. 程式人生 > >129. 求根到葉子節點數字之和(中等,樹)

129. 求根到葉子節點數字之和(中等,樹)

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。計算從根到葉子節點生成的所有數字之和。

示例 1:

輸入: [1,2,3]
    1
   / \
  2   3
輸出: 25

思路:先求出每條路徑上的數字組成的字串列表,然後把這些int數值相加成和。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def sumNumbers(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        def dummy(root,l):
            if not root:
                return None
            if not root.left and not root.right:
                result.append(l+str(root.val))
            if root.left:
                dummy(root.left,l+str(root.val))
            if root.right:
                dummy(root.right,l+str(root.val))
        result=[]
        dummy(root,'')
        summ=0
        for i in result:
            summ+=int(i)
        return summ

執行用時: 48 ms, 在Sum Root to Leaf Numbers的Python3提交中擊敗了92.58%的使用者