Verkettete Liste implementieren

Status
Nicht offen für weitere Antworten.
S

Sara

Gast
Hi,

ich habe eine Frage zu den Listen und zwar, wie sieht der Code vollständig aus, wenn, das letzte Objekt das erste sein soll und das vorletze das zweite.....
z.B: head->h ->a ->l ->l ->o -> tail
wird zu: head->o -> h-> a-> l-> l-> ->tail
... hallo wird zu ollah

Als Anfang:

Code:
public class int{ 

Node next; 
int wert; 
} 

public void listeDrehen(){ 

while(next.next!=null) {
head.next=???
.....

WIe ich das jetzt anfangen würde ist, dasss ich erstmal alle Objekte durchgehe bis auf das Letzte, und wenn das letzte erreicht worden ist dann füge "head" für das letzte und das vorletze... oder wie sieht es anders aus?

Gruß
Sara
 

Wildcard

Top Contributor
Ach so... du willst das selbst implementieren...
Sofern deine Liste doppelt verkettet ist, musst du eigentlich nur alle Zeiger umdrehen.
 

Marco13

Top Contributor
... und sofern sie nur einfach verkettet ist (was vermutlich durch die -> Pfeile angedeutet werden sollte) geht sowas meistens ziemlich elegant mit Rekursion (nicht unbedingt immer die effizienteste Lösung, aber hierfür ist es eigentlich bestens geeignet.)

Wenn die Liste nur ein Element enthält, gibt man das Element zurück und ist fertig.
Andernfalls enthält die Liste n+1 Elemente. Dann nimmt man das vorderste Element weg, dreht den Rest der Liste um, und hängt das vorderste Element ans Ende der umgedrehten Liste.

Das dann aber richtig umzusetzen ist trickier, als es im ersten Moment aussieht... Insbesondere will man am Ende ja den Anfang der neuen Liste haben...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben