Implementando o BFS em Java

Sou iniciante em Java e preciso de ajuda.

Eu estou tentando implementar algoritmo Breadth First Search para resolver um jogo de quebra-cabeça (Unblock Me um jogo no Android). Eu terminei com a interface gráfica, mas estou preso com o algoritmo.

Até agora eu posso contar os movimentos disponíveis de cada bloco, que supostamente são os nós filhos do nó raiz. Cada nó (lista encadeada) tem a posição de cada bloco e todos os nós estão sendo armazenados em um Conjunto.

O que eu preciso agora é marcar cada nó como visitado, então eu não entro em um loop.

Eu apreciaria qualquer tipo de ajuda, e por favor me corrija se eu estiver enganado com alguma coisa.

Desde já, obrigado :)

questionAnswers(4)

yourAnswerToTheQuestion