学堂 学堂 学堂公众号手机端

LeetCode-129. Sum Root to Leaf Numbers

lewis 1年前 (2024-03-29) 阅读数 7 #技术


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.

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);
}
};

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门