public void ordenarXApellido() {

        Nodo aux1 = cabeza;
        Nodo aux2 = null;
        Nodo naux = new Nodo();

        while (aux1 != null) {
            aux2 = aux1;

            while (aux2.siguiente != null) {
                aux2 = aux2.siguiente;

                if (aux1.dato3.compareTo(aux2.dato3)>0) {// esto es para intercambiar 2 nodos
                    naux.dato = aux1.dato;
                    naux.dato2 = aux1.dato2;
                    naux.dato3 = aux1.dato3;
                     naux.dato4 = aux1.dato4;
                    aux1.dato = aux2.dato;
                    aux1.dato2 = aux2.dato2;
                    aux1.dato3 = aux2.dato3;
                     aux1.dato4 = aux2.dato4;
                    aux2.dato = naux.dato;
                    aux2.dato2 = naux.dato2;
                    aux2.dato3 = naux.dato3;
                    aux2.dato4 = naux.dato4;
                }
            }
            aux1 = aux1.siguiente;
        }
    }