【LeetCode】Sum Root to Leaf Numbers
2014-04-25 12:25
381 查看
Given a binary tree containing digits from
path could represent a number.
An example is the root-to-leaf path
Find the total sum of all root-to-leaf numbers.
For example,
The root-to-leaf path
The root-to-leaf path
Return the sum = 12 + 13 =
思路:重新构建了一个函数,返回值是每一个节点的权值和该节点的val。递归即可。
0-9only, each root-to-leaf
path could represent a number.
An example is the root-to-leaf path
1->2->3which 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->2represents the number
12.
The root-to-leaf path
1->3represents the number
13.
Return the sum = 12 + 13 =
25.
思路:重新构建了一个函数,返回值是每一个节点的权值和该节点的val。递归即可。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ struct LNodenum{ int val; int lev; }; class Solution { public: LNodenum cacul(TreeNode *root){ LNodenum ret; ret.val=0; ret.lev=1; if(root==NULL)return ret; if(root->left==NULL&&root->right==NULL){ ret.val=root->val; return ret; }else if(root->left==NULL){ ret=cacul(root->right); ret.lev*=10; ret.val+=root->val*ret.lev; return ret; }else if(root->right==NULL){ ret=cacul(root->left); ret.lev*=10; ret.val+=root->val*ret.lev; return ret; }else{ ret=cacul(root->left); LNodenum ret1=cacul(root->right); ret.lev=(ret.lev+ret1.lev)*10; ret.val=root->val*ret.lev+ret.val+ret1.val; return ret; } } int sumNumbers(TreeNode *root) { LNodenum ret=cacul(root); return ret.val; } };
相关文章推荐
- LeetCode (Sum Root to Leaf Numbers)
- 【Leetcode】Sum Root to Leaf Numbers
- LeetCode 129 Sum Root to Leaf Numbers
- 【LeetCode with Python】 Sum Root to Leaf Numbers
- Leetcode Sum Root to Leaf Numbers
- [LeetCode] Sum Root to Leaf Numbers
- Leetcode Sum Root to Leaf Numbers
- [leetcode]Sum Root to Leaf Numbers
- [leetcode]Sum Root to Leaf Numbers
- [LEETCODE] Sum Root to Leaf Numbers
- leetcode:Sum Root to Leaf Numbers
- LeetCode之Sum Root to Leaf Numbers
- LeetCode: Sum Root to Leaf Numbers
- LeetCode – Refresh – Sum Root to Leaf Numbers
- [LeetCode]129 Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers(LeetCode)
- 【leetcode】Sum Root to leaf Numbers
- Leetcode Sum Root to Leaf Numbers
- [C++]LeetCode: 94 Sum Root to Leaf Numbers (先序遍历)
- Leetcode: Sum Root to Leaf Numbers