对这种树的操作,已经比较熟练了。
class Solution {
public:
int sumNumbers(TreeNode *root) {
int sum = 0;
calculate(root, 0, sum);
return sum;
}
void calculate(TreeNode *root, int currentSum, int& sum)
{
if (root == NULL) return;
currentSum = currentSum * 10 + root->val;
if (root->left == NULL && root->right == NULL)
{
sum += (currentSum);
}
else
{
calculate(root->left, currentSum, sum);
calculate(root->right, currentSum, sum);
}
}
};