程序员

第四章_链表_2019-03-21

2019-03-21  本文已影响3人  雨住多一横

介绍

1、链表问题算法难度不高,但考察代码实现能力。
2、链表和数组都是一种线性结构。
①数组是一段连续的存储空间。
②链表空间不一定保证连续,为临时分配的。
3、链表分类
①根据指针的方向可以分为单向链表和双向链表
②根据有无循环可以分为普通链表和循环链表

链表问题代码实现的关键点:

1、链表调整函数的返回值往往是节点类型。
2、解决链表问题一定要花时间考虑哪些指针变了,一般可以用画图发辅助解决,在变化指针指向之前要保存环境,以免断线。
3、注意边界条件的处理:头节点、尾节点、空节点等特殊节点的处理

链表插入和删除的注意事项

1、要特殊处理空链表和长度为1的链表
2、插入之前要同时找到插入点之前和之后的位置
3、删除时要注意头尾节点及空节点,需要特殊考虑
4、单链表翻转
①为空和为1时要特殊处理
②大量链表问题可以使用额外数据结构来简化过程,但往往空间复杂度为O(1)即可解决

经典题

上一篇 下一篇

猜你喜欢

热点阅读