¿Por qué cada vez que creamos un nuevo nodo p.next
, así que necesitamos para asignar nula a this.next
? No siempre es nulo de alguna manera? y qué papel desempeña en LinkedList
? si tratamos de imprimir this.next
será nula antes de que asignamos a nula .
System.out.println(this.next);
El resultado es nulo
Además, si p.next
el punto a la nueva node
por qué tenemos que establecer p = p.next
para que señale el mismo nodo? Si el propósito de inserción de la cola de p en el pasado, puede que no acaba de establecer tail = p.next
que es la última después de finalizada bucle.
public class EnkeltLenketListe<T>{
private T value;
private Node<T> next;
private Node(T value, Node<T> next)
{
System.out.println(this.next);
this.next = next;
this.value = value;
}
}
private Node<T> head, tail;
public EnkeltLenketListe(T[] a)
{
this();
int i = 0; for (; i < a.length && a[i] == null; i++);
if (i < a.length)
{
head = new Node<>(a[i], null);
Node<T> p = head;
for (i++; i < a.length; i++)
{
if (a[i] != null)
{
p.next = new Node<>(a[i], null);
p = p.next;
}
}
tail = p;
}
}
¿Por qué cada vez que crear nueva p.next nodo, así que necesitamos nula asignar a this.next?
mientras que la adición y eliminación de un nodos, hay que asegurarse de que los nodos no apuntan a los nodos no deseados. puede ser que tengan que apunta a algunos nodos.
Por eso necesitamos conjunto P = p.next a punto al mismo nodo
para localizar y mantener su posición en la lista mientras está Recorrido de la lista, se parte de la cabeza, y seguir a los nodos restantes. Si p=p.next
, ¿cómo van a recorrer la lista?
¿No podemos sistema de la cola = p.next que es la última después de finalizada bucle.
No, no podemos debido a que en este caso p.next
es equivalente a p.p.next
porque p
se fijó en p.next
el interior del bucle. probarlo añadiendo lo siguiente antes tail=p
, usted debe conseguir nula
System.out.println(p.next);
editado:
su lista está separado lista de lo que significa cada nodo, excepto la cola debe tener un puntero al siguiente nodo relacionado, que se inició con
head = new Node<>(a[i], null);
Node<T> p = head;
en este caso, p
y head
están apuntando Node 0
Vea a continuación. si el siguiente nodo de la matriz no es nulo, por no ver lo que sucede en el bucle
p.next = new Node<>(a[i], null);
p = p.next;
En este caso p.next
se señala a Node 1
(ver imagen inferior), en donde como p
el que señalaban Node 0
ahora se establece en el punto a Node 1
. por lo tanto están apuntando a 'Nodo 1`. el último:
tail = p;
Usted ha dicho que por qué no acabamos tail=p.next
? No, no podemos debido a que en este caso p.next
es equivalente a p.p.next
porque p
se fijó en p.next
el interior del bucle.