is my add method in binary search tree correct
It looks to be correct.

However this code can result in unbalanced trees (like if you add all numbers in increasing order).

To keep it balanced you can use the techniques described for self-balancing trees