remove
. Este método debe tomar el elemento que queremos eliminar como argumento y luego buscar en la lista para encontrar y eliminar el nodo que contiene ese elemento. Cada vez que eliminamos un nodo de una lista vinculada, es importante que no dejemos huérfanos accidentalmente al hacerlo. Recuerde que la next
propiedad de cada nodo apunta al nodo que lo sigue en la lista. Si estamos eliminando el elemento medio, por ejemplo, vamos a querer asegurarse de que tenemos una conexión desde previa del nodo de ese elemento next
propiedad para el elemento medio next
propiedad (que es el siguiente nodo en la lista!) Esto puede sonar realmente confuso, así que volvamos al ejemplo de la línea de conga para tener un buen modelo conceptual. Imagínate a ti mismo en una línea de conga, y la persona que está directamente delante de ti deja la línea. La persona que acaba de dejar la línea ya no tiene a sus manos sobre nadie, y usted ya no tiene las manos sobre la persona que se fue. Da un paso adelante y pone sus manos sobre la siguiente persona que ve. Si el elemento que queremos eliminar es el elemento head
, reasignamos la head
al segundo nodo de la lista enlazada. remove
que toma un elemento y lo elimina de la lista vinculada. Nota La length
de la lista debería disminuir en uno cada vez que se elimine un elemento de la lista vinculada. LinkedList
debe tener un método de remove
.
testString: 'assert((function(){var test = new LinkedList(); return (typeof test.remove === "function")}()), "Your LinkedList
class should have a remove
method.");'
- text: Su método de remove
debe reasignar la head
al segundo nodo cuando se elimina el primer nodo.
testString: 'assert((function(){var test = new LinkedList(); test.add("cat"); test.add("dog"); test.remove("cat"); return test.head().element === "dog"}()), "Your remove
method should reassign head
to the second node when the first node is removed.");'
- text: Su método de remove
debe disminuir la length
de la lista enlazada en uno por cada nodo eliminado.
testString: 'assert((function(){var test = new LinkedList(); test.add("cat"); test.add("dog"); test.remove("cat"); return test.size() === 1})(), "Your remove
method should decrease the length
of the linked list by one for every node removed.");'
- text: El método de remove
debe reasignar la referencia del nodo anterior del nodo eliminado a la next
referencia del nodo eliminado.
testString: 'assert((function(){var test = new LinkedList(); test.add("cat"); test.add("dog");test.add("kitten"); test.remove("dog"); return test.head().next.element === "kitten"})(), "Your remove
method should reassign the reference of the previous node of the removed node to the removed node's next
reference.");'
```