Atualizar nó de uma árvore binária

Olá, pessoal. Estou desenvolvendo um árvore binária, ms não consigo atualizar o nó removido. Eu removo o nó, porém quando mando imprimir os elementos, o nó ainda está lá. Acredito que seja pq Java só passa parâmetros por valor. alguém tem alguma ideia de como atualizar este nó?
Abaixo segue a remoção do nó:

public NoArvore remocao(NoArvore a, int valor) {    
    
    if (a.esquerda == null && a.direita == null) {//remoção da folha    
        a = null;    
        return a;    
    
    } else {    
        if ((a.esquerda == null && a.direita != null) || (a.direita == null && a.esquerda != null)) {//nó com um filho    
            if (a.esquerda == null && a.direita != null) {    
                NoArvore aux = a.direita;    
                a = null;    
                a = aux;    
                return a;    
            } else {    
                if (a.direita == null && a.esquerda != null) {    
                    NoArvore aux = a.esquerda;    
                    a = null;    
                    a = aux;    
                    return a;    
                }    
            }    
        } else {//remoção de um nó com dois filhos    
            if ((a.esquerda != null) && (a.direita != null)) {    
                if (a.direita.esquerda != null && a.direita.esquerda.direita != null) {    
                    a = a.direita.esquerda;    
                    a.direita.esquerda = a.direita.esquerda.direita;    
                    return a;    
                }    
            }    
        }    
    }    
    
    return a;    
}