Cómo revertir una lista vinculada usando la recursividad de cola y dos punteros

Recursividad de la cola
Página en stackoverflow.com

No recursividad de la cola
Deje que la lista vinculada sea 1-> 2-> 3-> 4-> NULL
Puede desplazarse hasta el final de la lista por recursión y luego devolver un puntero al siguiente nodo a la llamada anterior, por ejemplo, después de alcanzar 4, devuelva un puntero a 4 a la llamada anterior (cuando estaba en el nodo 3) para que pueda tener un puntero al siguiente nodo y un puntero al nodo actual. Ahora solo cambia sus punteros.
Deberá realizar un seguimiento del puntero de su cabeza que puede ser el segundo puntero que puede cambiar al final de la lista cuando llegue al final.

#include using namespace std; struct node { int data; struct node *next; }; void insert(struct node **head,int x) { struct node *newnode= new node[sizeof(node)]; newnode->data = x; newnode->next = *head; *head = newnode; } void display(struct node *head) { while(head!=0) { cout<data<"; head=head->next; } cout<next==0) { *head = newnode; return newnode; } else { struct node *prev = reverse(newnode->next,head); prev -> next = newnode; newnode -> next = 0; return newnode; } } int main() { struct node *head = 0; int n=10; while(n!=0) insert(&head,n--); display(head); reverse(head,&head); display(head); return 0; } 

Invertir las listas vinculadas puede ser de dos maneras y se explican bien en la siguiente ubicación. De todos modos, gracias por publicar un contenido tan útil aquí y sigan compartiendo la información en el futuro.

Invertir las listas vinculadas en Cpp