Я пытаюсь сделать связанный список обратным, а также удалить метод.
В основном программа работает нормально, но она не совместима между remove () и reverseByLink ().
при удаленииочереди и после того, как я пытаюсь использовать reverseByLink, он не переворачивается вообще.Когда я отлаживаю его, он показывает, что цикл while (cur! = Null) нашел нулевое значение.Поэтому я не знаю, что делать.
void reverseBylink() {
Node prev = null;
Node current = this.first;
Node next = null;
Node temp = null;
while (current != null) {
next = current.next;
current.next = prev;
prev = current;
current = next;
}
temp =first;
first = last;
last = temp;
}
//How to do this...;<..
int remove(Item item) {
Node cur = this.first;
Node prev = null;
Node temp2 = null;
while (cur != null) {
if (cur.item.equals(item)) {
if (prev != null) {
prev.next = cur.next;
cur = cur.next;
} else {
cur = cur.next;
first = cur;
}
} else {
prev = cur;
cur = cur.next;
}
}
temp2 = first;
first = last;
last = temp2;
return 0;
}
/**
* Unit tests the <tt>LinkedQueue</tt> data type.
*/
public static void main(String[] args) {
LinkedQueue<String> q = new LinkedQueue<String>();
//Working properly for reverseByStack.
q.enqueue("a");
q.enqueue("b");
q.enqueue("c");
q.enqueue("a");
q.enqueue("d");
q.enqueue("b");
q.enqueue("abba");
q.enqueue("a");
q.enqueue("z");
q.enqueue("a");
q.reverseBystack();
System.out.println(q);
q.remove("a");
q.remove("f");
q.remove("c");
q.reverseBylink();
System.out.println(q);
}
}
это то, что я сделал.
Не могли бы вы помочь мне, что мне нужно изменить?