// ReverseList.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
struct node{
int m_num;
struct node* pnext;
node(int num)
{
m_num=num;
pnext=NULL;
}
};
node* reverse(node* head)
{
static node* new_head;
if(head==NULL)
return NULL;
if(head->pnext !=NULL)
{
reverse(head->pnext);
head->pnext->pnext=head;
head->pnext=NULL;
}
else
new_head=head;
return new_head;
}
void travel(node* head)
{
node* pwalker=head;
while(pwalker!=NULL)
{
printf("%3d",pwalker->m_num);
pwalker=pwalker->pnext;
}
printf("\n");
}
int main(int argc, char* argv[])
{
node* head1=new node(1);
node* node2=new node(2);
node* node3=new node(3);
head1->pnext=node2;
node2->pnext=node3;
travel(head1);
node* rev=reverse(head1);
travel(rev);
printf("Hello World!\n");
return 0;
}
/*
1 2 3
3 2 1
Hello World!
Press any key to continue
*/
反转一个链表。递归算法
最新推荐文章于 2024-05-04 07:09:09 发布