For all program or data structure design problems such as the two below you must provide pseudocode (see the manual)and an adequate explanation of the methods. It is often helpful to include small examples demonstrating the methods. Straight pseudocode with no additional documentation is not enough.
My astronomer friends discovered such a method using leftist trees. The idea is to add a new field called sum to a leftist tree node that maintains the sum of all the nodes in the subtree rooted at that node. If these sums are maintained properly then round-off errors can be minimized. The proper way to maintain the sum at a non-leaf node p is to make sure that the sum is always computed as p.key + p.left.sum + p.right.sum where the sums were computed the same way for the children of p. Round-off error is minimized because addition is done by adding up the smallest numbers first, before adding in the larger numbers.
Your assignment is to design recursive leftist merge operation that properly maintains the sum field. This function then can be used in your designs of insert and delete-max that also maintain the sum field properly.