/**
 * Beschreiben Sie hier die Klasse List.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class List<T>
{
    public Node<T> first;
    public List(){
    }

    public void einfuegen (T neu) {
        Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen

        //Überprüfe ob die liste leer ist
        if(first == null){
            //setze neue node als erster Eintrag
            first = n;
        }
        else {
            Node<T> current = first;

            while(current.next != null){
                current = current.next;
            }
            current.setNext(n);
        }

        //current ist jetzt der letzte Eintrag
        //setze neue Node als Nachfolger von bisher letztem Eintrag
    }

    public int laenge(){
        Node current = first;
        int laenge = 0;
        while(current != null){
            current = current.next;
            laenge++;
        }
        return laenge;   

    }

    public T getNteZahl(int n){
        Node<T> current = first;
        for(int i = 0; i<n; i++){
            current = current.next;   
        }
        return current.wert;
    }

    public void loesche(int n){
        Node<T> current = first;

        //gehe an den Vorgänger des zu löschenden Eintrags
        for(int i=0; i<n-1; i++){
            current = current.next;
        }
        //setze Übernächsten Eintrag als Nachfolger
        current.next = current.next.next;

    }

    public void hinzufügen(int n, T wert){

        Node<T> neu = new Node<T>(wert);
        if(n==0){
            //setze Nachfolger auf bisherigen Stand
            neu.setNext(first);
            //setze neuen Start auf neuen 
            first = neu;
        }else{
            Node<T> current = first;
            //gehe an den Vorgänger des zu löschenden Eintrags
            for(int i=0; i<n-1; i++){
                current = current.next;
            }
            //setze Übernächsten Eintrag als Nachfolger
            current.next = current.next.next;
        }

    }
    
}