反转一个链表。递归算法

来源:互联网 发布:一键安装php集成环境 编辑:程序博客网 时间:2024/06/05 12:05
// 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;}elsenew_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  1Hello World!Press any key to continue*/

原创粉丝点击