struct Node
{
int data;
Node *next;
};
Node* createList(){
Node *head;
Node *PerNode;
Node *CurNode;
head = new Node;
head->data = 0;
PerNode = head;
CurNode = NULL;
for (int i = 1; i < 10; i++)
{
CurNode = new Node();
CurNode->data = i;
PerNode->next = CurNode;
PerNode = CurNode;
}
return head;
}
Node* Order(Node *perNode, Node *curNode){
Node *head;
if (curNode->next != NULL){
perNode = curNode;
curNode = curNode->next;
head = Order(perNode, curNode);
curNode->next = perNode;
return head;
}
else{
curNode->next = perNode;
return curNode;
}
}
Node* reverse(Node *head){
Node *newHead;
if (head->next != NULL)
{
newHead = Order(head, head->next);
head->next->next = head;
head->next = NULL;
return newHead;
}
else{
return head;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
Node *head;
head = createList();
head = reverse(head);
for (Node *curNode = head; curNode != NULL; curNode = curNode->next)
{
printf("%d",curNode->data);
}
printf("/n");
return 0;
}