您的位置:首页 > 其它

求根到叶子节点数字之和

2019-03-25 17:33 218 查看

给定一个二叉树,它的每个结点都存放一个

0-9
的数字,每条从根到叶子节点的路径都代表一个数字。

例如,从根到叶子节点路径

1->2->3
代表数字
123

计算从根到叶子节点生成的所有数字之和。

说明: 叶子节点是指没有子节点的节点。

示例 1:

输入: [1,2,3]
1
/ \
2   3
输出: 25
解释:
从根到叶子节点路径 1->2 代表数字 12.
从根到叶子节点路径 1->3 代表数字 13.
因此,数字总和 = 12 + 13 = 25.
public class SumNumbers {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;

TreeNode(int x) {
val = x;
}
}

public int sumNumbers(TreeNode root) {
return dfs(root, "");
}

private int dfs(TreeNode root, String str) {
if (root == null) {
return 0;
}
str += root.val;
if (root.left == null && root.right == null) {
return Integer.valueOf(str);
}
return dfs(root.left, str) + dfs(root.right, str);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐