LeetCode------Sum Root to Leaf Numbers

LeetCode------Sum Root to Leaf Numbers_第1张图片
这道求根到叶节点数字之和的题跟之前的求Path Sum 二叉树的路径和很类似,都是利用DFS递归来解,这道题由于不是单纯的把各个节点的数字相加,而是每到一个新的数字,要把原来的数字扩大10倍之后再相加。代码如下:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int sumNumbers(TreeNode root) {
       return  dfs(root,0);
    }
    public static int dfs(TreeNode root,int sum){
        if(root == null) return 0;
        if(root.left == null && root.right == null)
            return sum*10 + root.val;
        return dfs(root.left,sum*10+root.val) + dfs(root.right,sum*10+root.val);
    }
}

你可能感兴趣的:(LeetCode,sum,root,to,leaf,numbers)