Doubt regarding replace with sum of greater nodes

What should be the approach to solve this problem ?

we do reverse Inorder traversal of BST, we get all nodes in decreasing order. We do reverse Inorder traversal and keep track of the sum of all nodes visited so far, we add this sum to every node.

public void Replace_with_Sum_of_greater_nodes1(Node node) {
if (node == null) {
return;
}
Replace_with_Sum_of_greater_nodes1(node.right);
sum += node.data;
node.data = sum;
Replace_with_Sum_of_greater_nodes1(node.left);
return;

}