Lista Simples - contador

Olá pessoal estou com um problema quando quero saber quantos numeros repetidos tem em uma lista. No Programa principal digito uma sequencia de numeros e depois faço a pesquisa quero que a pesquisa retorne se o numero esta inserido na lista e quantas vezes esse numero aparece na lista. Já tentei de tudo um pouco e não consegui achar a lógica onde colocar o contador. Implementei o contador dentro método ContarNo, mas o mesmo nao retorna a quantidade correta sempre um a menos. Por exemplo, se digito três números idênticos (3,3,3) o programa esta dizendo que só tem 2 numeros 3 cadastrados. :cry: Alguém poderia me dar uma dica onde implementar o contador.

abraços.

[code]
//Classe No
public class No {
int elemento;
No prox;

No(int elem){
  elemento = elem;
  prox = null;
}

}

//ClasseListaSimples
import javax.swing.JOptionPane;

public class ListaSimples {
No primeiro, ultimo;
ListaSimples(){
primeiro = ultimo = null;
}
public boolean listaVazia(){
return (primeiro == null && ultimo == null);
}

public void inserirInicio(No novoNo){

if (listaVazia()){
ultimo = novoNo;
}else{
novoNo.prox = primeiro;
}
primeiro = novoNo;
}

public void inserirFinal(No novoNo){
if (listaVazia()){
primeiro = novoNo;
}else{
ultimo.prox = novoNo;
}
ultimo = novoNo;
}

public int contarNos() {
int tamanho = 0;
No noTemp = primeiro;

while (noTemp != null){
tamanho++;
noTemp = noTemp.prox;
}
return tamanho;
}

public void inserirMeio(No novoNo, int posicao){
No noTemp = primeiro;
int numNos, posAux = 1;
numNos = contarNos();

if (posicao <= 1){
inserirInicio(novoNo);
}else{
if (posicao > numNos){
inserirFinal(novoNo);
}else{
while (posAux <(posicao-1)){
noTemp = noTemp.prox;
posAux++;
}
novoNo.prox = noTemp.prox;
noTemp.prox = novoNo;
}
}
}

public No BuscarNo(int elemento){
int i = 1,cont = 1;
No noTemp = primeiro;

while (noTemp != null){
if(noTemp.elemento == elemento){
cont++;
if(noTemp.elemento == elemento){
JOptionPane.showMessageDialog(null,"No “+ noTemp.elemento +” posicao "+ i +"Qtd: "+cont);
}
return noTemp;
}
i++;
noTemp = noTemp.prox;
}
return null;
}

public void mostrarLista(){
int i = 1;
No noTemp = primeiro;
while (noTemp != null){
JOptionPane.showMessageDialog(null,"Elemento " +noTemp.elemento+ " posicao "+i);
noTemp = noTemp.prox;
i++;
}
}

//Classe Main

import javax.swing.JOptionPane;

public class Main {
public static void main(String[] args) {
ListaSimples intLista = new ListaSimples();
int i, num,pesq = 0;
for (i=1; i<=3;i++){
num = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite um Número "));
intLista.inserirInicio(new No(num));
}
intLista.mostrarLista();

 pesq = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite um Número "));
 intLista.BuscarNo(pesq)
}

}
}[/code]

Resolvido.

[code]public No BuscarNo(int elemento){
int i = 1,cont = 0;
No noTemp = primeiro;

 while (noTemp != null){
    if(noTemp.elemento == elemento){
    cont++;
    JOptionPane.showMessageDialog(null,"No "+ noTemp.elemento +" posicao "+ i);
  }
  i++;
  noTemp = noTemp.prox;
 }
JOptionPane.showMessageDialog(null,"Este número aparece "+ cont);

return null;
}[/code]

valeu :lol: