数据结构1:单链表反转(转载)
来源:互联网 发布:人人商城数据备份 编辑:程序博客网 时间:2024/05/21 21:01
文章来自: http://blog.csdn.net/sicofield/article/details/8850269
typedef struct Node
{
int data;
struct Node* next;
}Node, *LinkedList;
单链表的翻转是一道很基本的算法题。
方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。
方法2:使用三个指针遍历单链表,逐个链接点进行反转。
方法3:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。
方法1的问题是浪费空间。方法2和方法3效率相当。一般方法2较为常用。
方法2代码:
方法3代码:
(----CVTE面试题)
附加一道题目,《编程之美》的3.4:从无头链表中删除节点。假设有一个没有头指针的单链表。一个指针指向此链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除。
分析:无法知道前续的节点,只能知晓后续节点,所以存在一个难点,如何将前后两段连接起来。由于链表是要删除操作,所以多处一个可用空间。所以可以用翻转操作方法1的思想来解决。将需要删除节点的节点复制为其后续节点就可以了,这样后续节点已经不再链表中,可以进行析构。
1 0
- 数据结构1:单链表反转(转载)
- 数据结构 - 反转单链表(C++)
- 单链表的反转(数据结构 面试题)
- 数据结构之单链表反转
- [数据结构]单链表反转
- 《数据结构》单链表反转
- 数据结构之单链表反转
- 数据结构-单链表反转
- 数据结构——反转单链表
- 数据结构之Java单链表反转
- 数据结构与算法之链表(三)单链表反转
- (数据结构)线性表_单链表反转 _模仿
- 算法学习之数据结构之单链表反转,两两反转
- 数据结构_单链表的建立与反转
- 【数据结构】看图理解单链表的反转
- 5.数据结构单链表之链表反转
- 数据结构(二)之链表反转
- 数据结构(二)之链表反转
- Python内置函数
- GUIZHOU的性能问题诊断
- [iOS 10 适配问题] 整合iOS10系统的适配相关内容
- 索引的优点和缺点
- 为web项目添加logback
- 数据结构1:单链表反转(转载)
- 原始dao的开发和mapper代理开发
- Android LocalSocket
- 8.consumer
- 词性记录
- AS小问题解决方法汇总(持续更新)
- linux中fork()函数详解(原创!!实例讲解)
- Android 系统状态栏沉浸式/透明化完整解决方案
- CALayer 想解释