Por cierto, ¿por qué siento que el marco no tiene nada que ver con el código? ¿Por qué la parte de la línea ondulada está programada así?
La primera pregunta es si la variable J es redundante y puede eliminarse.
La segunda pregunta es, ¿por qué deberíamos revertir el ciclo? Buena pregunta: porque cuando se elimina un elemento del cuadro de lista, el número de orden de los elementos del cuadro de lista cambiará. Por ejemplo, hay tres * * *. Después de eliminar el primero, el segundo se convierte en el primero y el tercero se convierte en el segundo. El siguiente ciclo solo eliminará el tercero en la secuencia original, pero no el segundo. ;Al realizar la tercera operación, no hay ningún elemento con número de secuencia 3 en la colección.
Por el contrario, la contraciclicidad no tendrá este problema.