Isso não tem muito que saber, penso que será algo do tipo:
Enquanto não chegares ao fim do labirinto:
Analizas todas as 7 posições à tua volta (não vale a pena analisares aquela de onde vens)
Se houver "saidas", escolhes uma e repetes o processo até chegares à posição fim
Se não houver "saidas" (com excepção daquela por onde vieste), voltas atrás até ao ponto onde tinhas pelo menos 2 saidas (mais uma vez, exceptuando a por onde vieste) e escolhes outra até esgotares as saidas todas nesse ponto, OU, chegares ao fim.
Espero ter ajudado qualquer coisita.
Edit: Uma coisa muito importante, se fores navegar pela tabela com um par de coordenadas (digamos x,y para linhas e colunas), não faz sentido teres indíces da matriz menores que 0 (ou o valor a que a linguagem que vais utilizar usa para o primeiro indíce), ou maiores que n (onde n é o número de linhas e colunas).
Se fores utilizar uma numeração sequencial, então não faz sentido indíces menores que 0 ou maiores que n*n-1 (a ultima posição). Porém, se este for o caso, então quando estás numa posição qualquer, para analisares as posições acima ou abaixo tens de subtrair ou adicionar n-1,n e n+1 para cada posição vizinha dessa célula. Confuso?