什么是链表?为什么需要链表?这里直接引用leetcode的一段描述。
tips:顺序表可以理解成数组
链表vs数组的优点:插入O(1),比数组的O(n)快,不像数组那样有最大长度限制。
链表vs数组的缺点:查找比数组慢,O(n),数组O(1)。需要更多的内存空间;
到这里,其实我觉得前端只要掌握单链表就可以了。怎么才知道自己有没有掌握?刷leetcode就行了。
操作链表的套路
1.快慢指针。(判断一个链表存不存在环)
2.链表数组化。(一开始对链表不太熟悉的我建议把链表处理成数组刷,增加自己的信心)
3.递归。(递归是最常用的,有时候也是最难写的,有时候也是最难理解的,一般如果理解不了,老老实实在纸上画递归树吧,辅助理解)
141.环形链表
206.反转链表
19.删除链表倒数第n个
tips:也可以麻烦一点,转换成数组做,但是没什么必要。
总结
其实在学习数据结构的时候,理解和掌握是有区别的,理解不一定会写,只有你真正掌握了才能写出来。记录一次学习数据结构的比较,打卡~