Hier handelt es sich um eine einfach verkettete Liste. Wo man verschiedene Methoden ausfuehren kann.
l.insert(new Node(1)); Methode insert aus Class List wird benutzt. Node n wird erwartet Parameter eins wird uebergeben.
Aber Klasse Node hat zwei Konstruktoren. Dann wird der Erste genommen. Wegen dem Node n. Aber woher wird dann das next = n im Konstruktor geliefert?
Aus den Variablen ganz oben in Klasse Node? Jedenfalls wird doch bei l.insert(new Node(1)); nur das element = 1 uebergeben?
	
	
	
	
	
		
	
			
			l.insert(new Node(1)); Methode insert aus Class List wird benutzt. Node n wird erwartet Parameter eins wird uebergeben.
Aber Klasse Node hat zwei Konstruktoren. Dann wird der Erste genommen. Wegen dem Node n. Aber woher wird dann das next = n im Konstruktor geliefert?
Aus den Variablen ganz oben in Klasse Node? Jedenfalls wird doch bei l.insert(new Node(1)); nur das element = 1 uebergeben?
		Java:
	
	// l.insert(new Node(1)); Methode insert aus Class List wird benutzt. Node n wird erwartet
// Parameter eins wird uebergeben.
// Aber Klasse Node hat zwei Konstruktoren. Dann wird der Erste genommen. Wegen dem Node n. Aber woher wird dann das next = n im Konstruktor geliefert?
// Aus den Variablen ganz oben in Klasse Node? Jedenfalls wird doch bei l.insert(new Node(1)); nur das element = 1 uebergeben?
public class TestList {
    public static void main(String args[]) {
        List l;
        
// neue Liste
        l = new List();
// alloziere Knoten
// ! Hier ist der Punkt den ich nicht verstehe
        l.insert(new Node(1));
        l.insert(new Node(4));
        l.insert(new Node(5));
        l.insert(new Node(2));
        
        l.dump();
        
        l.delete(5);
        
        l.dump();
    }
}
public class Node {
    public int   element = 0;
    public Node  next    = null;
    
// Konstruktor 1
    public Node(int e, Node n) {
        element = e;
        next    = n;
    }
// Konstruktor 2
    public Node(int e) {
        element = e;
    }
}
public class List {
    public Node head;
    
// am Kopf einfuegen Methode insert
    public void insert(Node n) {
        n.next = head;
        head   = n;
    }
    
    public void delete(int key) {
        Node current = head;
        
        if (head.element == key) {
            head = head.next;
            return ;
        }
        
        while (current.next!=null) {
            if (current.next.element==key)
                current.next = current.next.next;
            current = current.next;
        }
    }
    
    public Node search(int key) {
        Node current = head;
        
        while (current!=null) {
            if (current.element==key)
                return current;
            current = current.next;
        }
        return current;
    }
    public void dump() {
        Node current = head;
        
        System.out.println("dumping list");
        while (current!=null) {
            System.out.println("   element: "+current.element);
            current = current.next;
        }
    }
    
}