Aquí lo tienes en recursivo:
Código Java:
Ver originalpublic invierte(){
Apilar p2 = new Apilar();
invierte1(this, p2);
pilar = p2;
}
private void invierte1(Apilar p, Apilar p2){
if(p.size() == 0)
return;
else{
p2.apila(p.desapila());
invierte1(p,p2);
}
}