Hallo,
ich möchte gerne alle Knoten, die identisch mit einem übergebenen String sind, aus der Liste entfernen - inklusive Head-Knoten.
Ausschnitt aus meiner List-Klasse: Es geht um die deleteThis-Methode.
main:
Würde mich freuen wenn mit jemand weiterhelfen kann.
ich möchte gerne alle Knoten, die identisch mit einem übergebenen String sind, aus der Liste entfernen - inklusive Head-Knoten.
Ausschnitt aus meiner List-Klasse: Es geht um die deleteThis-Methode.
Code:
public class SinglyLinkedList {
private Node start;
public void add(String data) {
Node element = new Node(data);
if (start==null) {
start = element;
} else {
Node temp = start;
while(temp.next!=null) { //Bis zum letzten Element durchlaufen
temp = temp.next;
}
temp.next = element; //Das letzte Element = null, also hier einfügen
}
}
public boolean isElementOf(String data) {
Node temp = start;
while (temp!=null) {
if (temp.getStr().equals(data)) {
return true;
}
temp = temp.getNext();
}
return false;
}
public int getListPosition(String data) {
int count = 0;
Node temp = start;
while (temp!=null) {
if (temp.getStr().equals(data)) {
return count;
}
temp = temp.getNext();
count++;
}
return count;
}
public void deleteThis(String data) {
Node temp = start;
if (isElementOf(data)) {
Node previous = null;
while (temp!=null) {
if (getListPosition(data)==0) { //Wenn Head gelöscht werden soll
start = temp.next;
continue;
}
if (temp.getStr().equals(data)) {
previous.setNext(temp.getNext());
}
previous = temp;
temp = temp.getNext();
}
} else {
return;
}
return;
}
}
main:
Code:
public static void main(String[] args) {
//test
SinglyLinkedList liste2 = new SinglyLinkedList();
liste2.add("TEST2");
liste2.add("TEST2");
liste2.add("TEST");
liste2.deleteThis("TEST2");
liste2.printListStr();
}
Würde mich freuen wenn mit jemand weiterhelfen kann.