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.
For example,
1 / \ 2 3
The root-to-leaf path 1->2 represents the number 12.
The root-to-leaf path 1->3 represents the number 13.
Return the sum = 12 + 13 = 25.
class Solution {
public:
int ans = 0;
int sumNumbers(TreeNode *root) {
sum(root,0);
return ans;
}
void sum(TreeNode *root,int cur){
if(root == NULL) return;
if(root -> left != NULL || root -> right != NULL){
sum(root -> left,10 * cur + root -> val);
sum(root -> right,10 * cur + root -> val);
}else{
ans += 10 * cur + root -> val;
}
}
};
本文介绍了一个算法,用于计算二叉树中从根节点到叶子节点的所有路径所代表的数字之和。通过递归遍历树的结构,该算法将每个路径转换为数值并累加。例如,在树结构中包含节点1->2->3时,代表的数字为123;而节点1->2和1->3分别代表12和13,最终总和为25。
269

被折叠的 条评论
为什么被折叠?



