mmm bueno, como es estructura de datos pienso que estaras usando o tienes que usar listas, colas, pilas, ese problema lo resuelves con listas enlazadas, no se si sepas crear nodos, si no sabes, investiga, quiza te suene o ya lo hayas visto, ex:
Nodo nuevoNodo = new Nodo();
y si realizas una lista con nodos, donde cada nodo sea como un registro de informacion que contenga los dato que necesitas, solo seria recorrer la lista con dos nodos, uno siempre va a ir atras de otro, cuando el que va adelante encuentre al nodo que cumpla la condicion para eliminarse se pasara al que esta adelante de este para enlazar el nodo de atras con el de adelante, elminando los apuntadores y el nodo que no se necesitan; graficamente es esto:
Nodo A, B, C; eliminaremos el nodo B
A -> B -> C; como vemos, si posicionamos nuestro nodo en A, tenemos que A.next() = B, osea que A apunta a B o el siguiente de A es B
ahora, si adelantamos el nodo que va en A vemos que se topa con B, que es el que se va a eliminar, para recorrerlo un lugar y recorrer el otro tambien seria algo como:
nodoRecorrer2 = nodoRecorrer1; //el nodo dos estaba atras del uno, y ahora estan en el mismo lugar
nodoRecorrer1 = nodoRecorrer1.next; //adelanamos el nodo 1
y como dije anteriormente, el nodoRecorrer1 esta en B, asi que cuando se detecte esto ay que recorrer solo el nodo1 una posicion
nodoRecorrer1 = nodoRecorrer1.next;
y realizamos el enlaze de los dos nodos borrando el enlaze anterior, de esta forma
nodoRecorrer2.next = null;
nodoRecorrer2.next = nodoRecorrer1;//recordemos que el 2 esta en A y el uno en C, asi que el siguiente nodo de A es C
por ultimo solo se borra B y queda la lista asi:
A -> B
ojala te sirva de ayuda la informacion, aunque sea algo tarde
