1. 程式人生 > >【LeetCode】【129】【Sum Root to Leaf Numbers】

【LeetCode】【129】【Sum Root to Leaf Numbers】

題目: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. 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. 解題思路:簡單的遞迴,用心感受就好,注意寫好遞迴的結束條件 程式碼:

class TreeNode {
      int val;
      TreeNode left;
      TreeNode right;
      TreeNode(int x) { val = x; }
}
    int ans = 0;
    public int sumNumbers(TreeNode root) {
        sum(root,0);
        return ans;
    }
    public void sum(TreeNode root,int curSum){
        if(root == null) return;
        if(root.left == null && root.right == null)
            ans+= curSum*10+root.val;
        sum(root.left,curSum*10+root.val);
        sum(root.right,curSum*10+root.val);
    }