Java Linked List Such- und Löschmethode

Ich habe ein Projekt für den Informatikunterricht und habe bis auf eine Methode alles erledigt. Die Löschmethode. Grundsätzlich erstelle ich eine verknüpfte Liste aus Benutzereingaben und muss in der Lage sein, alle Knoten (was erledigt ist) und einen einzelnen angegebenen Knoten zu löschen. Also muss ich die Liste der Knoten durchsuchen, um den einen zu löschen und ihn zu löschen. Alles, was helfen kann, wird geschätzt. Wenn Sie eine Lösung haben, bieten Sie bitte eine Erklärung an, während ich versuche, das Problem zu lernen und einfach zu lösen.

Ich werde Ihnen die GUI nicht geben, weil ich nicht denke, dass es notwendig ist, aber hier ist die Knotenklasse.

public class MagazineList {
private MagazineNode list;

    public MagazineList(){
        list = null;
    }


public void add(Magazine mag){
    MagazineNode node = new MagazineNode(mag);
    MagazineNode current;

    if(list == null) {
        list = node;
    }
    else {
        current = list;
        while(current.next != null)
            current = current.next;
        current.next = node;
    }   
}
public void insert(Magazine mag) {
  MagazineNode node = new MagazineNode (mag);

  // make the new first node point to the current root
  node.next=list;

  // update the root to the new first node
  list=node;
}

public void deleteAll() {
    if(list == null) {

    }

    else {
        list = null;
    }
}
public void delete(Magazine mag) {
    //Delete Method Goes Here
}

public String toString(){
    String result = " ";

    MagazineNode current = list;
    while (current != null){
        result += current.magazine + "\n";
        current = current.next;     
    }
    return result;
}
private class MagazineNode {
    public Magazine magazine;
    public MagazineNode next;


    public MagazineNode(Magazine mag){
        magazine = mag;
        next = null;
    }
}
}

AKTUALISIEREN

Hier ist die Methode, die ich zusammengestellt habe. Sie durchläuft den ersten Teil der while-Schleife und erkennt nie dasselbe Element in der Liste. Ich habe genau dasselbe für die Eingabe- und Löschmethoden verwendet, es wird jedoch nicht erkannt. Jede Hilfe wird geschätzt.

public void delete (Magazine mag) {
MagazineNode current = list;
MagazineNode before;

before = current;

if(current.equals(mag)){
    before.next = current;
    System.out.println("Hello");
}

while ((current = current.next)!= null){
    before = current.next;
    System.out.println("Hello Red");

    if(current.equals(mag)){
        current = before;
        System.out.println("Hello Blue");
    }
}
 }

Antworten auf die Frage(3)

Ihre Antwort auf die Frage