You shouldn't ever be returning the operators though, only the result of operations or the number value in the node.
In the first branch, after you apply the operator to the two children, you should get back a double then return that.
In the second branch you should be returning the value (which is a double).