私は複雑なアルゴリズムを解決することを学んでいます。そのために、私はLinkedListの実装を見つけました。私は上記の解決策を理解しようとしています。 appendToTailではwhileループとwhileループの後のwhileループについてはわかりません。 deleteNodeでは、ノードが削除された場所を見ることができません。LinkedList - 実装を理解しようとしています
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;
}
}
}
感謝@Leon:
新しいリストは次のようになります。私は今それを得た –