逆转链表
来源:互联网 发布:2konline巅峰科比数据 编辑:程序博客网 时间:2024/06/14 00:56
逆转链表是面试中经常遇到的题目。
一.先看看顺序表(或线性内存)的逆转
SeqList reverse(SeqList L){ if(L!=NULL) { SeqList s; s=(SeqList *)malloc(sizeof(SeqList *)*length); int i; for(i=0;i<L->length;i++) { s->data[i]=L->data[L->length-1-i]; } for(i=0;i<L->length;i++) { L->data[i]=s->data[i]; } free(s); return L; }}步骤:
1.分配和原来数据一样大的内存空间
2.从原来数据的末尾开始拷贝
3.利用s获得的数据对原来的数据进行覆盖,释放内存。
二、逆转链表
List Reverse(List L){ Position old_head,new_head,temp; if(L!=NULL) { old_head=L-next; new_head=NULL; while(old_head) { temp=old_head->next; old_head->next=new_head; new_head=old_head; old_head=temp; } L=new_head; return L; }}步骤:
1.建立一个新的头结点
2.将每一个原链表的头结点反转,即原头结点指向新头结点。将指针分为两部分,一部分是已经反转的指针,另一部分未反转
3,直至原链表所有指针已反转
阅读全文
0 0
- 逆转链表
- 单向链表逆转
- 链表的逆转
- 逆转单向链表
- 关于逆转链表
- 实现链表逆转
- 线性链表逆转
- 逆转链表
- 链表就地逆转
- 链表逆转
- K链表逆转
- 链表的逆转
- 单向链表逆转
- [链表]逆转链表
- 单向链表逆转
- 链表逆转
- 链表逆转
- java逆转链表
- mongoose非关系型数据库参考手册
- c++中关于最短路径问题的Dijkstra算法的实现
- echarts3.x实用配置
- EVM误差矢量幅度
- 用户 角色 权限(管理方案)
- 逆转链表
- 数据结构Note:伸展树(Splay Tree)
- hdu 2546 饭卡(01背包)
- php学习笔记——redis扩展
- QPS与TPS简介
- 前端各个框架兼容性
- 浅谈强联通分量,双联通分量
- 计算机网络学习(1)
- 【Spring】配置数据库资源