根节点到叶节点数字的和
1. LeetCode 129. Sum Root to Leaf Numbers
2. 描述
给定一颗二叉树,其节点的值为0-9,每一个从根节点到叶节点的路径都表示一个整数,计算所有的这样的路劲表示的整数之和。
3. 示例
给定二叉树:
1
/ \
2 3
根节点到叶节点的路径为:1 -> 2,表示整数12
根节点到叶节点的路径为:1 -> 3,表示整数13
因此返回值为: 12 + 13 = 25
4. 解决方案1:
int sum = 0;
void SubSum(TreeNode* root, int val){
if(root == nullptr){
return;
}
int cur_val = val * 10 + root->val;
if(root->left != nullptr){
SubSum(root->left, cur_val);
}
if(root->right != nullptr){
SubSum(root->right, cur_val);
}
if(root->left == nullptr && root->right == nullptr){
sum += cur_val;
}
}
int sumNumbers(TreeNode* root) {
if(root == nullptr){
return 0;
}
SubSum(root,0);
return sum;
}