递归方法反转链表
2014-08-25 21:22
260 查看
<span style="font-size:18px;">#include <iostream> #include <time.h> #include <string> using namespace std; //单链表反转 struct node { int data; node *next; }; void Create(node * &head) { int data; cin>>data; node *p1,*p2; while(data!=-1) { if(head==NULL) { head=new node; head->data=data; head->next=NULL; p1=head; } else { p2=new node; p2->data=data; p1->next=p2; p1=p2; p1->next=NULL; } cin>>data; } } void Print(node *head) { while(head!=NULL) { cout<<head->data<<' '; head=head->next; } } node *Reverse(node *p,node *&head) { if(p->next==NULL) { head->next=NULL; head=p; return p; } else { node *tmp=Reverse(p->next,head); tmp->next=p; return p; } } void main() { node *head=NULL; Create(head); Reverse(head,head); Print(head); } </span>
相关文章推荐
- 经典算法——单链表反转的递归方法和非递归方法
- 递归方法反转单向链表(C/C++)
- 实现链表的反转(递归方法与非递归方法)
- 反转链表,递归方法
- 16、反转链表(递归方法)
- 反转一个链表的两种方法:递归和循环
- 单链表反转的递归方法
- 单链表反转/逆序的第三种方法
- 【100题】反转链表(递归实现)
- C递归实现单向链表的反转
- 【面试题】单链表反转-递归和非递归
- 链表反转 递归和非递归版
- C递归实现单向链表的反转
- 链表反转的两种实现方法
- C/C++面试程序题(一)——字符串反转、链表反转的递归、非递归实现
- 一些常用算法[数组全排列算法,单链表反转(递归实现),字符串反转,桶排序]
- 单向链表反转(循环和递归)
- 单向链表的反转最简单方法
- C/C++用递归的方法求链表逆序
- 链表反转的两种实现方法