struct ListNode{
int value;
ListNode *next;
ListNode(int value):value(value), next(NULL){}
};
//1.逆向打印链表
void printList(ListNode *head)
{
if(head==NULL)
return;
else
{
printList(head->next);
printf("%d",(head->value));
}
}
//2.链表逆置
ListNode * Reverse(ListNode *head)
{
ListNode * p1,*p2,*p3;
if(head == NULL || head->next == NULL) return head;
p1=head; p2=p1->next;
while(p2)
{
p3=p2->next;
p2->next=p1;
p1=p2;
p2=p3
}
head->next=NULL;
head=p1;
return head;
}
main( )
{
ListNode *head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
printList(head);
}