Frage Erklärung: Ich habe wie diese benachbarte Paare tauschen:
Eingang: 1 -> 2 -> 3 -> 4 -> 5 -> NULL
Ausgabe: 2 -> 1 -> 4 -> 3 -> 5 -> NULL
Dieser Code gibt einen Segmentierungsfehler. Außerdem möchte ich wissen, ob diese Logik korrekt ist oder nicht?benachbarte Knoten in einer verknüpften Liste (iterativer Ansatz) Swapping
listnode* swapPairs(listnode* head) {
/* corner cases not included, don't bother */
listnode *prev = head; //points to first node
listnode *curr = prev -> next; //points to second
head = curr; //displacing head to the second element of list
listnode *next; //points to next of second
while(curr != NULL || prev != NULL) {
next = curr -> next;
curr -> next = prev;
prev -> next = next;
prev = next;
curr = prev -> next;
}
return head;
Dank für die Hilfe .. –