ユーザーが入力したインデックスによって、双方向にリンクされたリストのノードを削除しようとしています。私には理にかなっているように思えますが、「ノードを削除」してリストの内容を再印刷した後、何も変わっていません。私が見逃しているのはばかげていると確信しています。何かアドバイス?
public void removeEntryNode() {
System.out
.println("We delete by index here. Type in the number you want to delete");
// print list for selection
temp = head;
while (temp != null && temp.getFirstName() != null) {
System.out.print(temp.getIndex() + " " + temp.getFirstName() + " ");
System.out.print(temp.getLastName() + " ");
System.out.println(" ");
temp = temp.getNext();
}
int selection = keyboard.nextInt();
// Gets node matching index with selection and deletes it
// Next two lines loop through list
while (temp != null && temp.getIndex() != selection) {
temp = temp.getNext();
}
// if it is the head
if (selection == 0) {
head = temp.getNext();
temp.getNext().setPrev(null);
temp.setNext(null);
counter--;
}
// if it is the tail
else if (selection == size()) {
tail = temp.getPrev();
temp.setPrev(null);
temp.setNext(null);
temp.getPrev().setNext(null);
counter--;
} else {
temp.getPrev().setNext(temp.getNext());
temp.getNext().setPrev(temp.getPrev());
temp.setNext(null);
temp.setPrev(null);
counter--;
}
System.out.println("Successfully deleted ");
menu();
}