链表篇(结)
链表的考察更多的是指针的调用考察
链表基础
在基础运用中:
- 链表的种类主要为:单链表,双链表,循环链表
- 链表的存储方式:链表的节点在内存中是分散存储的,通过指针连在一起。
- 链表是如何进行增删改查的。
- 数组和链表在不同场景下的性能分析。
链表运用
虚拟头节点
链表的一大问题就是操作当前节点必须要找前一个节点才能操作。这就造成了,头结点的尴尬,因为头结点没有前一个节点了。
每次对应头结点的情况都要单独处理,所以使用虚拟头结点的技巧,就可以解决这个问题。
ListNode* dummyhead = new ListNode(0);
dummyhead -> next = head;
链表的基本操作
链表篇(二)——链表的基础操作_LuciferPluto的博客-CSDN博客
上述链接考察了:
- 获取链表第index个节点的数值
- 在链表的最前面插入一个节点
- 在链表的最后面插入一个节点
- 在链表第index个节点前面插入一个节点
- 删除链表的第index个节点的数值
可以说这个包括了所有基本操作
反转链表
可以有两个角度去学习——迭代法和递归法,需要清楚里面的步骤,而不是单纯的去背里面的操作。
总结
在写完链表的5-6道题后会发现链表的遍历,增删改查的操作等等都是比较固定的,只是在环的操作会多一些思考,有了双指针并与之衍生的快慢指针的方法后,我们在解决这类链表的切片操作等复杂操作会有更多的参考思路。
接下来将开启哈希表篇,敬请期待