Я новичок в Java.
Я создал метод, в котором он будет удалять элементы из LinkedList, кроме первого.Идея заключается в том, что логическое значение будет установлено в true, если данные элемента LinkedList (который находится в целочисленном виде) соответствуют параметру.Как только логическое значение станет равным true, оно удалит любой элемент, который также соответствует исходному.
Теперь проблема.Например, если бы я удалил 5, кроме первого из этого LinkedList:
5 5 5 6 5 7 8 9
Я получу такой результат:
5 5 6 7 8 9
Как видите, он не убрал 5 на второй позиции.Что-то не так с моим кодом?
Вот, кстати, код
public void append(int data) {
Node newNode = new Node(data);
if (head == null) {
head = new Node(data);
return;
}
Node lastNode = head;
while (lastNode.next != null) {
lastNode = lastNode.next;
}
lastNode.next = newNode;
return;
}
public void insert(int data) {
Node newData = new Node(data);
newData.next = head;
head = newData;
}
public void removeExceptFirst(int dataValue) { //The mentioned method
boolean duplicate = false;
Node currentNode = head;
while (currentNode.next != null) {
int value = currentNode.next.data;
if (value == dataValue) {
if (!duplicate) {
duplicate = true;
currentNode = currentNode.next;
} else {
currentNode.next = currentNode.next.next;
}
} else {
currentNode = currentNode.next;
}
}
return;
}