Traversieren von Listen

inseljavait

Grünschnabel
Hallo alle miteinander,

ich habe zwei Klassen geschrieben.
In der Main erstelle ich zwei Knoten, verlinke sie und geb sie dann aus.
Hierzu verwende ich in der Node-Klasse zwei Konstruktoren (einer der nen Knoten ohne Verweis auf den nächsten macht und einen der dann sagt, wo der nächste Knoten ist und verweist).

Alles schön und gut, nur wollte ich jetzt die Liste einfach in ner for-Schleife durchlaufen und den Inhalt jedes einzelnen Knoten ausgeben und das klappt irgendwie gar nicht.

Speziell der head macht mir Probleme.
Muss der head ein Konten sein ? Könnt ihr mir sagen, wo der Fehler ist
Wäre sehr dankbar.

MfG
inseljavait

Code:

public class Main {
public static void main(String[] args) {
Object A = "A";
Object B = "B";

Node a,b;
// Oder: Node a = new Node(A);

b = new Node(B);
// Zuerst den letzen End-Knoten erzeugen
a = new Node(A,b);
// Dann den ersten Knoten erzeugen und verweisen

System.out.println("Inhalt Knoten A: " + a.value);
System.out.println("Inhalt Knoten B: " + a.next.value);

Node head;
for (a = head; a != null; a = a.next) {

System.out.println(a.value);

}
}
}

Node-Klasse:

public class Node {

public Object value;
public Node next;

public Node(Object v) {
value = v; next = null;
}
public Node(Object v, Node n ){
value = v; next = n;
}
}
 
head wird bei dir gar nicht initialisiert, daher kann die for-Schleife gar nicht funktionieren.

Was du meinst ist wohl:
Java:
for (Node head = a; head != null; head = head.next) {
    System.out.println(head.value);
}
 
Hallo und danke für Deine Antwort.
Das mit dem head hatte ich wohl nicht richtig verstanden.
Hast recht. Ich habs angepasst und es funktioniert tadellos.

Danke für den Tip.

MfG
inseljavait
 
Zurück