// 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;
}
Ly8gRm9sbG93aW5nIGlzIHRoZSBCaW5hcnkgVHJlZSBub2RlIHN0cnVjdHVyZQovKioqKioqKioqKioqKioKY2xhc3MgQmluYXJ5VHJlZU5vZGUgewogICAgcHVibGljIDogCiAgICBUIGRhdGE7CiAgICBCaW5hcnlUcmVlTm9kZTxUPiAqbGVmdDsKICAgIEJpbmFyeVRyZWVOb2RlPFQ+ICpyaWdodDsKCiAgICBCaW5hcnlUcmVlTm9kZShUIGRhdGEpIHsKICAgICAgICB0aGlzIC0+IGRhdGEgPSBkYXRhOwogICAgICAgIGxlZnQgPSBOVUxMOwogICAgICAgIHJpZ2h0ID0gTlVMTDsKICAgIH0KfTsKKioqKioqKioqKioqKioqLwoKdmVjdG9yPGludD4gc3VtVHJlZShCaW5hcnlUcmVlTm9kZTxpbnQ+KiByb290KXsKICAgIAkvKiBEb24ndCB3cml0ZSBtYWluKCkuCgkqIERvbid0IHJlYWQgaW5wdXQgZnJvbSwgaXQgaXMgcGFzc2VkIGFzIGZ1bmN0aW9uIGFyZ3VtZW50LgoJKiBSZXR1cm4gb3V0cHV0IGFuZCBkb24ndCBwcmludCBpdC4KCSogVGFraW5nIGlucHV0IGFuZCBwcmludGluZyBvdXRwdXQgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5LgoJKi8KICAgIGludCBzdW0gPSAwOwogICAgdmVjdG9yPGludD52OwoJaWYocm9vdC0+bGVmdD09TlVMTCAmJiByb290LT5yaWdodD09TlVMTCl7CiAgICAgICAgc3VtID0gMDsKICAgICAgICB2LnB1c2hfYmFjayhzdW0pOwoKICAgIH0KICAgIGVsc2V7CiAgICAgICAgc3VtID0gcm9vdC0+bGVmdC0+ZGF0YSArIHJvb3QtPnJpZ2h0LT5kYXRhOwogICAgCXYucHVzaF9iYWNrKHN1bSk7CiAgICB9CiAgICAKICAgIHN1bVRyZWUocm9vdC0+bGVmdCk7CiAgICBzdW1UcmVlKHJvb3QtPnJpZ2h0KTsKICAgIHJldHVybiB2Owp9Cg==