Reversing a Linked List
Iterative and recursive approaches to reverse a linked list.
Reversing by Changing Node Data & Using an Array :
void reverse(struct node *ptr, int a[]) {
// A variable to keep track of array index
int i = 0;
// Copy data from linked list to array
while (ptr != NULL) {
a[i] = ptr -> data;
i++;
ptr = ptr -> next;
}
// Set index to begin reverse procedure
ptr = head;
i--;
// Copy data from array to linked list in reverse
while (ptr != NULL) {
ptr -> data = a[i];
i--;
ptr = ptr -> next;
}
}Reversing using Sliding Pointers :
Reversing by Recursion :
Last updated