单链表逆置--三种经典办法
来源:互联网 发布:软件开发月报 编辑:程序博客网 时间:2024/04/28 02:32
typedef struct ListNode{
ListNode *next;
Element data;
}ListNode, *pList;
这是我做的单链表逆序三个不同的算法,2个递归的以及一个非递归的
pList ReverseList( pList head ){
if( !head || !(head->next) )
return head;
pList ph = ReverseList( head->next );
head->next->next = head;
head->next = NULL;
return ph;
}
pList ReverseList( pList head , pList &tail ){
if( !head || !(head->next) ){
tail = head;
return head;
}
pList pt;
pList ph = ReverseList( head->next , pt );
pt->next = head;
head->next = NULL;
tail = head;
return ph;
}
pList ReverseListNonRec( pList head ){
if( !head || !(head->next) )
return head;
pList h = NULL,h1 = head;
while( head ){
h1 = head->next;
head->next = h;
h = head;
head = h1;
}
return h;
}
ListNode *next;
Element data;
}ListNode, *pList;
这是我做的单链表逆序三个不同的算法,2个递归的以及一个非递归的
pList ReverseList( pList head ){
if( !head || !(head->next) )
return head;
pList ph = ReverseList( head->next );
head->next->next = head;
head->next = NULL;
return ph;
}
pList ReverseList( pList head , pList &tail ){
if( !head || !(head->next) ){
tail = head;
return head;
}
pList pt;
pList ph = ReverseList( head->next , pt );
pt->next = head;
head->next = NULL;
tail = head;
return ph;
}
pList ReverseListNonRec( pList head ){
if( !head || !(head->next) )
return head;
pList h = NULL,h1 = head;
while( head ){
h1 = head->next;
head->next = h;
h = head;
head = h1;
}
return h;
}
- 单链表逆置--三种经典办法
- 单利的三种办法
- 经典惩罚办法
- 三种下载文件的办法
- 三种下载文件的办法
- 三种下载文件的办法
- 三种自动刷新页面的办法
- android全屏的三种办法
- Android关闭应用的三种办法
- UIToolBar 三种办法(转)
- 查看Linux版本号的三种办法
- oracle用户解锁的三种办法
- 子集生成(三种办法)
- Java 数组初始化的三种办法.
- ORACLE NO_DATA_FOUND的三种处理办法
- CentOS安装JDK的三种办法
- 三种经典博弈问题
- 三种经典博弈问题
- C++随机数生成方法
- windows安装mysql
- 关联关系, 聚合关系,组合关系的区别
- 要构建一个食堂订餐系统需要面临哪些困难?
- BZOJ 1584 [Usaco2009 Mar] Cleaning Up
- 单链表逆置--三种经典办法
- 可信执行环境(TEE)介绍
- 题目1151:位操作练习
- cscope和ctags的使用
- 简单android计算器 android学习(一)
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- malloc和new的区别
- JAVA 设置背景图片
- Android开发之SD卡上文件操作(转载从网络)