DEV Community

Thivyaa Mohan
Thivyaa Mohan

Posted on • Updated on

Sum Tree

This post discusses the solution of the problem -

We need to solve this problem using Children Sum Property, which means sum of left and right child should be equal to its root. A tree with single node, is also considered to be following children sum property.A empty tree is also considered to be following Children Sum Property.

Below is the solution of the problem.

class Solution
{
    public:

    int findSum(Node*root){
        if(!root) return 0;
        return root->data +findSum(root->left)+findSum(root->right);
    }
    bool isSumTree(Node* root)
    {
         // Your code here
         if(!root) return true;
         if(!root->left && !root->right) return true;

         if(findSum(root->left)+findSum(root->right) == root->data)
         return (isSumTree(root->left) && isSumTree(root->right));
         else return false;
    }
};
Enter fullscreen mode Exit fullscreen mode

Discussion (0)