课程名称:2周刷完100道前端优质面试真题
课程章节:第2章 前端面试技能拼图1 :数据结构和算法(上),大厂面试必考
主讲老师:双越
课程内容:
今天学习的内容包括:
2-9 使用 JS 反转单向链表-什么是链表——链表是一种零散的类似数组的物理结构。
2-10 使用 JS 反转单向链表-分析解题思路——使用三个指针进行链表的翻转。
2-11 使用 JS 反转单向链表-代码演示和单元测试——书写反转代码和单元测试。
课程收获:
JS 反转单向链表
什么是链表
- 链表是一种物理结构(非逻辑结构),类似于数组。
- 数组需要一段连续的内存区间,而链表是零散的。
- 链表节点的数据结构{ value, next?, prev? }。
链表 vs 数组
- 都是有序结构。
tips:对象是无序的
。 - 链表:查询慢O(n),新增和删除快O(1)。
- 数组:查询快O(1),新增和删除慢O(n)。
解题思路
- 反转,即节点next 指向前一个节点。
- 但这很容易造成nextNode的丢失。
- 需要三个指针prevNode curNode nextNode。
划重点
- 链表,链表 vs 数组。
- 如何让nextNode不丢失。
- 链表的代码逻辑比较繁琐,调试成本高。
今天的 学习了 反转单向链表,通过三个指针进行链表的反转,之前也有写过反转链表,但是时间异常就忘记了,这是学习的一个大问题,学完就忘,太难了。
下一步就是 学习 链表和数组哪个实现队列更快了。今天学习就先到这里吧。
坚持打卡,坚持学习,未来可期,加油😀~