Ich lerne, komplexen Algorithmus zu lösen. Dafür bin ich auf die Implementierung von LinkedList gestoßen. Ich versuche die obige Lösung zu verstehen. In appendToTail verstehe ich while-Schleife und die Zeile nach der while-Schleife nicht. In deleteNode kann ich nicht sehen, wo der Knoten gelöscht wird.LinkedList - Versuchen, die Implementierung zu verstehen
class Node {
Node next = null;
int data;
public Node(int d) {
data = d;
}
void appendToTail(int d) {
Node end = new Node(d);
Node n = this;
while (n.next != null) {
n = n.next;
}
n.next = end;
}
Node deleteNode(Node head, int d) {
Node n = head;
if (n.data == d) {
return head.next; /* moved head */
}
while (n.next != null) {
if (n.next.data == d) {
n.next = n.next.next;
return head; /* head didn’t change */
}
n = n.next;
}
}
}
dank @Leon. Ich habe es jetzt –