int calsum(TreeNode *root, int &ans) {
     int f = 0;
     if (root == NULL) return f;
     int left = calsum(root->left, ans);
     int right = calsum(root->right, ans);
     ans = max(ans, left + right + root->val);
     ans = max(ans, left + root->val);
     ans = max(ans, right + root->val);
     f = max(0, max(left, right)) + root->val;
     return f;
 }
int calsum(int n) {
    if (n != 0) {
        rem = n % 10;
        sum = sum + rem;
        calsum(n / 10);
    }
    return sum;
}
Exemple #3
0
main()
{
      int a,b,c,sum;
  printf("enter any three numbers\n");
  scanf("%d%d%d",&a,&b,&c);
  sum=calsum(a,b,c);
  printf("sum= %d",sum);
  getch();    
}
 int maxPathSum(TreeNode *root) {
     // Start typing your C/C++ solution below
     // DO NOT write int main() function
     int ans = 0;
     if (root) {
         ans = root->val;
         calsum(root, ans);
     }
     return ans;
 }