割り当て用の LinkedList クラスを作成していて、挿入メソッドを作成していて、それを確認できるかどうか疑問に思っていました。
private Node first; // start of the list
private class Node {
private Item item;
private Node next;
}
public boolean insert(Item item) {
// add item to list if it doesn't already exist
// return true if a new Node is created, otherwise false
if ( first.next == null && first.item == item) {
return false;
}
Node ptr = first;
while (ptr.next != null) {
if (ptr.item == item) {
return false;
}
ptr = ptr.next;
}
Node oldFirst = first;
first = new Node();
first.item = item;
first.next = oldFirst;
return true;
}
ほとんどの場合、問題ないと思いますが、insert メソッドをトレースしようとするたびに、自分自身を混乱させ、すべての参照の変更を台無しにしてしまいます。私がそれを正しく行っているかどうか誰かに教えてもらえますか? 他の改善点も高く評価されます。