hi leute hab mal ne verständnisfrage, also ich habe eine aufgabe bekommen in der ich eine methode schreiben soll die das letzte element einer beliebig langen liste entfernt. allerdings hat diese liste zwei dummy elemente (anfang und ende ) die keine daten enthalten. die liste besteht desweiteren aus Link elementen die die daten referenzieren. na ja kurz um man muss ja zum löschen nur die referenzen ändern. hier ist mein code.
hab den code ausprobiert und es funzt auch, aber meine frage ist nun wieso genau?? hab gedacht ich müsste aktuell auch auf "null" setzen damit aktuell keine verweis mehr auf "ende" hat und somit weg ist. setzt ich das aber auf null kommt natürlich die nullpointer exception.kann mir einer bei dieser frage helfen??
Java:
public Link entfernen()
{
Link aktuell = anfang.naechster;
Link vorgaenger = anfang;
while ( aktuell != ende)
{
aktuell = aktuell.naechster;
vorgaenger = vorgaenger.naechster;
if(vorgaenger==ende)
{
return null;
} else if (aktuell.naechster==ende)
{
vorgaenger.naechster = ende;
ende = ende.naechster.naechster;
}
}
return aktuell;
}
hab den code ausprobiert und es funzt auch, aber meine frage ist nun wieso genau?? hab gedacht ich müsste aktuell auch auf "null" setzen damit aktuell keine verweis mehr auf "ende" hat und somit weg ist. setzt ich das aber auf null kommt natürlich die nullpointer exception.kann mir einer bei dieser frage helfen??