[LeetCode] Sum Root to Leaf Numbers, Solution


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.
» Solve this problem


[Thoughts]
Recursion. Similar as  [LeetCode] Binary Tree Maximum Path Sum Solution, the difference here is only adding a track variable to sum all the paths.

[Code]
1:       int sumNumbers(TreeNode *root) {  
2: int sum=0, path =0;
3: GenerateSum(root, sum, path);
4: return sum;
5: }
6: void GenerateSum(TreeNode *root, int& sum, int path)
7: {
8: if(root == NULL) return;
9: path = path*10 +root->val;
10: if(root->left == NULL && root->right == NULL)
11: {
12: sum+=path;
13: return;
14: }
15: GenerateSum(root->left, sum, path);
16: GenerateSum(root->right, sum, path);
17: }










转载于:https://www.cnblogs.com/codingtmd/archive/2013/02/23/5078899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值