- // 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;
- }
-
反转一个链表。递归算法
最新推荐文章于 2022-11-25 01:07:00 发布