es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eliminar duplicados de una lista enlazada. ¿Por qué las posiciones de “prev = head” y “p2 = p2.next” no están fuera de la declaración “else”?

Para la primera función, ¿no debería estar “prev = head” afuera de “else” porque queremos establecer el valor anterior (“prev”) cada vez antes de cambiar el valor de la cabeza (“head”)?

Para la segunda función, ¿no debería “p2 = p2.next” estar afuera de “else” porque queremos avanzar al siguiente nodo (“next”) cada vez?

Gracias chicos.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    En la primera función, es mejor mantener la declaración de prev = head dentro del bloque else porque solo queremos actualizar el nodo anterior cuando no hay duplicados. Si hay un duplicado, solo queremos actualizar prev.siguiente pero mantener prev con su valor actual.

    En la segunda función, también es mejor mantener la declaración de p2 = p2.siguiente dentro del bloque else por la misma razón. Solo queremos mover p2 hacia adelante cuando no hay duplicados. Si hay un duplicado, solo queremos actualizar p2.siguiente pero mantener p2 con su valor actual. Mover p2 hacia adelante cuando hay un duplicado llevaría a una solución incorrecta.

Comments are closed.