// Following is the Binary Tree node structure
/**************
class BinaryTreeNode {
    public : 
    T data;
    BinaryTreeNode<T> *left;
    BinaryTreeNode<T> *right;

    BinaryTreeNode(T data) {
        this -> data = data;
        left = NULL;
        right = NULL;
    }
};
***************/

vector<int> sumTree(BinaryTreeNode<int>* root){
    	/* Don't write main().
	* Don't read input from, it is passed as function argument.
	* Return output and don't print it.
	* Taking input and printing output is handled automatically.
	*/
    int sum = 0;
    vector<int>v;
	if(root->left==NULL && root->right==NULL){
        sum = 0;
        v.push_back(sum);

    }
    else{
        sum = root->left->data + root->right->data;
    	v.push_back(sum);
    }
    
    sumTree(root->left);
    sumTree(root->right);
    return v;
}
