Binary Search Tree Inserção recursiva que não exibe nada

Eu estou fazendo um pequeno trabalho Java na Binary Search Tree, mas quando estou implementando a inserção recursiva de um nó na árvore e exibi-lo, eu não entendo nada. Eu estive nisso por um tempo agora, eu não tenho certeza, mas eu acho que é um problema de passagem por referência.

Aqui está meu código:

public class BST {

    private BSTNode root; 

    public BST() {
        root = null;
    }

    public BSTNode getRoot() {
        return root;
    }

    public void insertR( BSTNode root, Comparable elem ) {

        if ( root == null ) {
            root = new BSTNode( elem );
        }
        else {
            if ( elem.compareTo( root.element ) < 0 ) {
                insertR( root.left, elem );
            } else {
                insertR( root.right, elem );
            }
        }

    }

    public void printInOrder (BSTNode root) {
        if (root != null) {

            printInOrder(root.left);
            System.out.println(root.element);
            printInOrder(root.right);

        }
    }
}

class BSTNode {

    protected Comparable element;
    protected BSTNode left;
    protected BSTNode right;

    protected BSTNode ( Comparable elem ) {

        element = elem;
        left = null;
        right = null;

    }

}

Eu executei uma série de insertR com a raiz sendo o nó para inserir e o elem é uma string, mas ela não imprime nada, como se a árvore não estivesse preenchida. Tenho certeza que é problema com minha inserção recursiva, mas não tenho certeza de onde, eu preciso usar um método de inserção recursiva que retorna nada que eu acho que é impossível.

Qualquer ajuda seria ótimo.

questionAnswers(3)

yourAnswerToTheQuestion