LeetCode-129. Sum Root to Leaf Numbers
Given a binary tree containing digits from0-9
only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path1->2->3
which represents the number123
.
Find the total sum of all root-to-leaf numbers.
Note:A leaf is a node with no children.
Example:
Input: [1,2,3]
1
/ \
2 3
Output: 25
Explanation:
The root-to-leaf path 1->2 represents the number 12.
The root-to-leaf path 1->3 represents the number 13.
Therefore, sum = 12 + 13 = 25.
Example 2:
Input: [4,9,0,5,1]
4
/ \
9 0
/ \
5 1
Output: 1026
Explanation:
The root-to-leaf path 4->9->5 represents the number 495.
The root-to-leaf path 4->9->1 represents the number 491.
The root-to-leaf path 4->0 represents the number 40.
Therefore, sum = 495 + 491 + 40 = 1026.
题解:
class Solution {
public:
int sums (TreeNode *root, int val) {
if (root == NULL) {
return 0;
}
if (root->left == NULL && root->right == NULL) {
return root->val + val * 10;
}
root->val = root->val + val * 10;
return sums(root->left, root->val) + sums(root->right, root->val);
}
int sumNumbers(TreeNode* root) {
return sums(root, 0);
}
};
版权声明
本文仅代表作者观点,不代表博信信息网立场。
上一篇:PHP 编码规范 下一篇:最长递增子序列及vue3.0中diff算法