翻转单向链表
来源:互联网 发布:nero burn for mac 编辑:程序博客网 时间:2024/05/18 03:12
在cnbeta上看到的,就自己写一写,练下链表和递归。
#include <iostream>#include <cstdio>using namespace std;struct Node{Node(int n){num=n;next=NULL;}int num;Node* next;};Node* head;Node* tail(Node* p){if(p==NULL||p->next==NULL) return p;return tail(p->next);}void travel(Node* p){if(p==NULL) return;cout<<p->num;if(p->next!=NULL){cout<<"->";travel(p->next);}}Node* reverseSL(Node* p){if(p==NULL) return NULL;if(p->next==NULL) return p;Node* t=reverseSL(p->next);Node* tt=tail(t);if(tt!=NULL) {tt->next=p;p->next=NULL;}return t;}int main(){freopen("data.dat","r",stdin);int num;cin>>num;head=new Node(num);Node* p=head;while(cin>>num){p->next=new Node(num);p=p->next;}cout<<"origin list:"<<endl;travel(head);head=reverseSL(head);cout<<endl;cout<<"after reverse:"<<endl;travel(head);return 1;}
- 翻转单向链表
- 单向链表翻转
- 单向链表翻转
- 翻转单向链表
- 翻转单向链表
- 单向链表翻转问题
- 单向链表的创建及翻转
- 普通单向链表的翻转
- C++单向链表之链表翻转
- 翻转一个单向链表的c语言代码
- 单向链表创建存入数组后翻转
- 面试系列之一:C艹翻转单向链表
- 一个 while 实现 C 翻转单向链表
- 单向链表每k个元素翻转一次。
- 单向链表每k个元素翻转一次。
- C语言单向链表的创建、释放、插入、删除、翻转操作练习
- 25. Reverse Nodes in k-Group 怎样不使用额外空间翻转一个单向链表?
- 单向链表的创建、节点删除、链表输出、翻转(写法参考计蒜客数据结构课程)
- 第十三周实验报告一
- jQuery源码分析18: .animate()(待续)
- 第十二周实验报告3
- Quick Tip: Preserve Data Consistency in Write-Optimized DSOs
- 第13周实验报告任务2
- 翻转单向链表
- bootloader kernel 下载、烧写 nfs tftp
- LPS:美国国防部参与研发的操作系统
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
- asmack杂记
- command window与sql window 区别
- Android中的几种网络请求方式详解
- 雕虫小技
- Android平板屏幕截图