void SumOfPathNums(TreeNode* root, int pathSum, int& sum) {
if(root == 0) {
return;
}
pathSum = pathSum * 10 + root->data;
if(root->left == 0 && root->right == 0) {
sum += pathSum;
} else {
SumOfPathNums(root->left, pathSum, sum);
SumOfPathNums(root->right, pathSum, sum);
}
pathSum -= root->data;
}
int SumOfPathNums(TreeNode* root) {
int sum = 0;
int pathSum = 0;
SumOfPathNums(root, pathSum, sum);
return sum;
}
1 Like
Dear @Rupinder_Ghotra,
This solution indeed works and fits the course pattern better. Thanks for sharing!