#include <bits/stdc++.h>
using namespace std;
struct node
{
int data;
struct node *left;
struct node *right;
};
struct node* add(int x)
{
struct node *temp = ( struct node *) malloc(sizeof(struct node));
temp->data = x;
temp->left = NULL;
temp->right = NULL;
return temp;
};
void sum_tree( struct node *root)
{
if ( root != NULL ) {
sum_tree(root->left);
sum_tree(root->right);
int l = 0;
int r = 0;
if (root->left != NULL ){
cout <<(root->left)->data<<endl;
l = (root->left)->data;
cout << l << endl;
}
if ( root->right != NULL ){
cout << " anu" << endl;
r = (root->right)->data;
cout << r << endl;
}
//cout << root->data <<endl;
// cout << l << r << endl;
root->data = l+r;
/*
if ( root->left != NULL ) {
if ( root->left->left == NULL && root->left->right == NULL ){
root->left->data = 0;
}
}
if ( root->right != NULL) {
if ( root->right->left == NULL && root->right->right == NULL ){
root->right->data = 0;
}
}
*/
}
return;
}
int main()
{
struct node *root = NULL;
root = add(1);
root->left = add(2);
root->right = add(3);
root->left->left = add(4);
root->left->right = add(5);
root->right->left = add(6);
root->right->right = add(7);
sum_tree(root);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUKewogICAgaW50IGRhdGE7CiAgICBzdHJ1Y3Qgbm9kZSAqbGVmdDsKICAgIHN0cnVjdCBub2RlICpyaWdodDsKfTsKCnN0cnVjdCBub2RlKiBhZGQoaW50IHgpCnsKICAgICBzdHJ1Y3Qgbm9kZSAqdGVtcCA9ICggc3RydWN0IG5vZGUgKikgbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm9kZSkpOwogICAgIHRlbXAtPmRhdGEgPSB4OwogICAgIHRlbXAtPmxlZnQgPSBOVUxMOwogICAgIHRlbXAtPnJpZ2h0ID0gTlVMTDsKICAgICByZXR1cm4gdGVtcDsKCn07CgoKdm9pZCBzdW1fdHJlZSggc3RydWN0IG5vZGUgKnJvb3QpCnsKCiAgICBpZiAoIHJvb3QgIT0gTlVMTCApIHsKCiAgICAgICAgc3VtX3RyZWUocm9vdC0+bGVmdCk7CiAgICAgICAgc3VtX3RyZWUocm9vdC0+cmlnaHQpOwoKICAgICAgIGludCBsID0gMDsKICAgICAgIGludCByID0gMDsKICAgICAgIGlmIChyb290LT5sZWZ0ICE9IE5VTEwgKXsKICAgICAgIAkgY291dCA8PChyb290LT5sZWZ0KS0+ZGF0YTw8ZW5kbDsKICAgICAgICAgbCA9IChyb290LT5sZWZ0KS0+ZGF0YTsKICAgICAgICAgY291dCA8PCBsIDw8IGVuZGw7CiAgICAgICB9CiAgICAgICBpZiAoIHJvb3QtPnJpZ2h0ICE9IE5VTEwgKXsKICAgICAgIAljb3V0IDw8ICIgYW51IiA8PCBlbmRsOwogICAgICAgICByID0gKHJvb3QtPnJpZ2h0KS0+ZGF0YTsKICAgICAgICAgY291dCA8PCByIDw8IGVuZGw7CiAgICAgICB9CiAgICAgICAvL2NvdXQgPDwgcm9vdC0+ZGF0YSA8PGVuZGw7CiAgICAgIC8vIGNvdXQgPDwgbCA8PCByIDw8IGVuZGw7CiAgICAgICByb290LT5kYXRhID0gbCtyOwogICAgICAgLyoKICAgICAgIGlmICggcm9vdC0+bGVmdCAhPSBOVUxMICkgewogICAgICAgaWYgKCByb290LT5sZWZ0LT5sZWZ0ID09IE5VTEwgJiYgcm9vdC0+bGVmdC0+cmlnaHQgPT0gTlVMTCApewogICAgICAgICByb290LT5sZWZ0LT5kYXRhID0gMDsKICAgICAgIH0KICAgICAgIH0KICAgICAgIGlmICggcm9vdC0+cmlnaHQgIT0gTlVMTCkgewogICAgICAgaWYgKCByb290LT5yaWdodC0+bGVmdCA9PSBOVUxMICYmIHJvb3QtPnJpZ2h0LT5yaWdodCA9PSBOVUxMICl7CiAgICAgICAgIHJvb3QtPnJpZ2h0LT5kYXRhID0gMDsKICAgICAgIH0KICAgICAgIH0KICAgICAgICovCgogICAgfQogICAgcmV0dXJuOwp9CgppbnQgbWFpbigpCnsKICAgICBzdHJ1Y3Qgbm9kZSAqcm9vdCA9IE5VTEw7CgogICAgIHJvb3QgPSBhZGQoMSk7CiAgICAgcm9vdC0+bGVmdCA9IGFkZCgyKTsKICAgICByb290LT5yaWdodCA9IGFkZCgzKTsKICAgICByb290LT5sZWZ0LT5sZWZ0ID0gYWRkKDQpOwogICAgIHJvb3QtPmxlZnQtPnJpZ2h0ID0gYWRkKDUpOwogICAgIHJvb3QtPnJpZ2h0LT5sZWZ0ID0gYWRkKDYpOwogICAgIHJvb3QtPnJpZ2h0LT5yaWdodCA9IGFkZCg3KTsKICAgCiAgICAgc3VtX3RyZWUocm9vdCk7CiAgICAgcmV0dXJuIDA7Cgp9Cg==