2016-05-09 1 views
0

Ich habe eine verkettete Liste durchlaufen und am Ende erreicht NULL in Kopf zwischen Ich modifizierte einige Elemente in Kopf. Wie bekomme ich den Kopfzeiger mit diesen Modifikationen zurück.Wie bekomme ich den Kopf der Liste nach dem Durchlaufen in Linked Listen?

Node* temp=head; 
while(head&&head->next){ 
    head=head->next->next; 
} 

Ich möchte verknüpfte Liste in neue mit alternativen Knoten geändert werden. Wie kann ich danach den neuen Kopfzeiger zurückbekommen?

EDIT:

ListNode* temp=head,*new1=head; 
     while(head!=NULL&&head->next){ 
      new1->next=head->next->next; 
      head->next=head->next->next; 
      new1=new1->next; 
     } 
     //temp=head; 
     return new1; 
+0

Die Antworten können nur so gut sein wie die Frage. Die Veröffentlichung eines [Minimal Complete Verifable Example] (http://stackoverflow.com/help/mcve) würde die Frage definitiv verbessern. – user3386109

+0

Verwenden Sie einfach den temporären Knoten, um den Polygonzug durchzuführen, anstatt den Kopf, so dass der Kopf unverändert bleibt. – Cherubim

+0

Ich möchte, dass es in dieser Liste geändert wird. – user6181297

Antwort

2

Eine Möglichkeit ist, einen anderen Zeiger zu verwenden, um die Liste zu durchqueren, und head allein lassen.

Eine andere Möglichkeit besteht darin, head wiederherzustellen, nachdem Sie fertig sind. Ihr Code scheint darauf hinzuweisen, dass dies möglich ist, da Sie head in temp gespeichert haben, bevor Sie die Schleife eingegeben haben.

head = temp; 
new1 = temp; 
+0

Aber Kopf oder Temp (durchquert eins) wird nach Abschluss der Schleife NULL sein. Wie kann ich den Anfangszeiger zurück bekommen? – user6181297

+0

Ich habe es dir gezeigt. Weisen Sie der Variablen den richtigen Wert zu. – jxh

+0

Aber die Änderung an der verknüpften Liste, die alternative Knoten überspringen ist nicht getan, es gibt die gleiche verknüpfte Liste. – user6181297

2

Ich denke, was Sie tun gemeint ist:

Node* temp = head; 

while(temp && temp->next){ 
    temp = temp->next->next; 
} 

Auf diese Weise Sie den Kopf immer haben.

+0

Ja, das ist besser, da der Kopfknoten unverändert +1 bleibt :) – Cherubim

Verwandte Themen