public void vueltaAtras (Nodo n, ArrayList<Nodo> v,int nivel, otros argumentos…){
if(esSolucion(v)){
mostrarSolucion(v);
}
else
for(int i = 0; i<numeroTotalDePosiblesHijos(); i++){
if(esValido(n,v,new Nodo(i))){ //esValido mira que el nuevo nodo no sea igual que n o alguno de v, o que por algún otro
motivo, no sea factible
v.add(new Nodo(i));
vueltaAtras(new Nodo(i) ,v, nivel+1, otros argumentos…);
}
}
if(!v.isEmpty()) v.remove(v.get(nivel));
}