#include<cstdio>
#include<cmath>
struct node{
	int value;
	struct node* next;
};
node* reverse(node* list){
	node* head=NULL,*cur=list,*temp;
	while(cur!=NULL){
		temp = cur->next;
		cur->next = head;
		head = cur;
		cur = temp;
	}
	return head;
}
int main(){
	node n1,n2,n3,n4,n5,n6,n7;
	n1.value = 1;
	n2.value = 2;
	n3.value = 3;
	n4.value = 4;
	n5.value = 5;
	n6.value = 6;
	
	
	n1.next = &n2;
	n2.next = &n3;
	n3.next = &n4;
	n4.next = &n5;
	n5.next = &n6;
	n6.next = NULL;
	
	node* list1 = &n1;
	node* p = reverse(list1);

	while(p!=NULL){
		printf("%d ",p->value);
		p = p->next;
	}
	printf("\n");
}