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

Popular posts from this blog

1431. Kids With the Greatest Number of Candies

125. Valid Palindrome

771. Jewels and Stones