1.什么是链表?
链表是一种数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表中的节点可以在内存中不连续地存储,通过指针来连接彼此。链表可以是单向链表,双向链表或循环链表。链表的优点是可以动态地分配内存空间,插入和删除操作效率高,但查找操作效率较低。
2.链表具有以下特点:
- 链表是一种动态数据结构,可以动态地分配内存空间,不需要预先指定大小。
- 链表中的节点可以在内存中不连续地存储,通过指针来连接彼此。
- 链表支持高效的插入和删除操作,时间复杂度为O(1),只需调整指针即可完成操作。
- 链表的查找操作效率较低,时间复杂度为O(n),需要从头节点开始遍历直到找到目标节点。
- 链表可以是单向链表、双向链表或循环链表,根据指针的指向关系不同而有所区别。
- 链表不需要连续的内存空间,可以更灵活地处理数据结构的变化
3.链表的样貌
链表的结构跟火车车厢相似,淡季时车次的车厢会相应减少,旺季时车次的车厢会额外增加几节。只需要将火车里的某节车厢去掉/加上,不会影响其他车厢,每节车厢都是独立存在的。车厢是独立存在的,且每节车厢都有车门。想象⼀下这样的场景,假设每节车厢的车门都是锁上的状态,需要不同的钥匙才能解锁,每次只能携带⼀把钥匙的情况下如何从车头⾛到车尾? 最简单的做法:每节车厢里都放⼀把下⼀节车厢的钥匙。
每一节车厢长与以下类似