Bom Dia Pessoal, meu código está dando erro, quando eu vou remover um valor que não existe na lista, o erro que ele da eh o Exception in thread “main” java.lang.NullPointerException. Como faço para arrumar, meu código está assim:
public String toString(){
String resultado = "[";
Node aux = inicio;
inicio = aux.getProximo();
while (aux.getProximo() != null) {
resultado = resultado + aux.getValor() + " ";
aux = aux.getProximo();
}
resultado = resultado + aux.getValor() + "]";
return resultado
}
Obrigado!
Alguém consegue me ajudar ?
Em qual linha esta ocorrendo o nullpointer?
inicio = aux.getProximo();
nessa linha, será que tenho que colocar um if?
De onde que essa variavel inicio
vem? Como ela é preenchida?
olha o cod inteiro:
public class ListaSimples {
private int tamanho;
private Node inicio;
public void adicionar(int valor) {
Node node = new Node(valor);
if (isEmpty()) {
inicio = node;
} else {
Node aux = inicio;
while (aux.getProximo() != null) {
aux = aux.getProximo();
}
aux.setProximo(node); // ultimo nó
}
tamanho++;
}
public void remover(int valorRetirar) { // throws ExceptionListaSimples
Node aux = inicio;
// Node noAnterior = new Node(0);
Node noAnterior = null;
if (aux.getValor() == valorRetirar) {
inicio = aux.getProximo();
} else {
while (aux.getProximo() != null && aux.getValor() != valorRetirar) {
noAnterior = aux;
aux = aux.getProximo();
}
noAnterior.setProximo(aux.getProximo());
}
this.tamanho--;
// throw new ExceptionListaSimples("Fila Vazia");
}
public String toString() {
String resultado = "[";
Node aux = inicio;
inicio = aux.getProximo();
while (aux.getProximo() != null) {
resultado = resultado + aux.getValor() + " ";
aux = aux.getProximo();
}
resultado = resultado + aux.getValor() + "]";
// return resultado;
// corrigir paraa mostrar o ultimo elemento
return resultado;
}
public boolean isEmpty() {
return inicio == null;
}
}
SkyG0D
Maio 22, 2020, 1:30am
#7
Creio que você esteja tentando chamar o método toString() antes de inicializar o a variável inicio .