When you use "&" in your function declaration, it expects you to pass by reference. As a result, the argument passed in should be variable.
But I do not believe that the insert() function should take an integer argument that way. Because if the incoming argument variable value is changed, it could break the tree. I believe you should pass it by value instead -- insert(int).