Учитывая двоичное дерево, содержащее только цифры от 0-9, каждый путь от корня к листу может представлять число.
Примером является путь от корня к листу 1-> 2-> 3который представляет число 123.
Найти общую сумму всех корневых чисел% 1003.
пример:если 1 является корнем, его левый потомок равен 2, а правый потомок равен 3,Путь от корня к листу 1-> 2 представляет число 12.
Путь от корня к листу 1-> 3 представляет число 13.
Возврат суммы = (12 + 13)% 1003 = 25% 1003 = 25.Оригинальная проблема здесь
PS: это не домашняя работа, я готовлюсь к поступлению в колледж.моя попытка:
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
void DFS(TreeNode* root, string &temp, int *ans){
if(!root)
return;
temp = temp + to_string(root->val);
if(root->left == NULL && root->right == NULL && temp.length()!=0){
*ans = (*ans + stoi(temp))%1003;
}
if(!root->left)
DFS(root->left, temp, ans);
if(!root->right)
DFS(root->right, temp, ans);
if(!temp.empty())
temp.pop_back();
}
int Solution::sumNumbers(TreeNode* A) {
string temp = "";
int ans = 0;
DFS(A, temp, &ans);
return ans%1003;
}