Sum of nodes on the longest path from root to leaf node
class Solution
{
public:
void findsum(Node*root , int sum , int &maxsum , int len , int &maxlen){
if(root==NULL){
if(len>maxlen)
maxlen = len;
else if(len == maxlen)
maxsum = max(sum,maxsum);
return;
}
sum += root->data;
findsum(root->left,sum,maxsum,len+1,maxlen);
findsum(root->right,sum,maxsum,len+1,maxlen);
return;
}
int sumOfLongRootToLeafPath(Node *root)
{
//code here
int sum=0,maxsum=0,len=0,maxlen=0;
findsum(root,sum,maxsum,len,maxlen);
return maxsum;
}
};
Comments
Post a Comment