void replaceSum(node *root, int *sum)
{
// Base Case
if (root == NULL) return;
// Recur for right subtree
replaceSum(root->right, sum);
// Now *sum has sum of nodes in right subtree, add
// root->data to sum and update root->data
*sum = *sum + root->data;
root->data = *sum;
// Recur for left subtree
replaceSum(root->left, sum);
}
// A wrapper over replaceSum()
void replaceSumBST(node *root)
{
int sum = 0;
replaceSum(root, &sum);
}