Parece que é muita coisa, mas é simples, prometo! 
A minha dúvida é com relação à remoção de um nó no meio de uma lista duplamente encadeada. O nó possui um elemento, uma referência para o nó seguinte e outra para o nó anterior.
u v w
Para remover v, eu faço, basicamente, u apontar para w e w apontar para u. Para liberar a memória que v ocupa, eu faria com que as referências dentro do nó v referenciassem NULL e eu atribuiria NULL também para o nó v. Porém, no livro de Estrutura de dados e Algorítmos em Java - 4º edição, o autor não se preocupou em atribuir NULL ao nó v. Olhem as imagens:

Ele simplesmente faz:
v.setPrev(null) //faz o ponteiro previous de v apontar para null. Antes apontava para u.
v.setNext(null) //faz o ponteiro next de v apontar para null. Antes apontava para w.
A próxima imagem ilustra que , para o autor, o garbage collector iria limpar o nó (que é um objeto com um elemento, uma variável de referência que referencia o elemento anterior e outra variável de referência, que referencia o elemento posterior) apenas com os comandos que ilustrei.

Duas perguntas: (1) eu não tenho que atribuir null à variável de referência v para que o GC limpe o objeto por ele referenciado?
Ex:
V v = new V(); //v tem a referência do objeto V
v = null; //ninguém mais referencia V. É um candidato ao GC.
(2) Somente essa atribuição não seria suficiente para limpar os objetos “ponteiros” dentro de v?