链表的一大问题就是操作当前节点必须要找前一个节点才能操作。这就造成了,头结点的尴尬,因为头结点没有前一个节点了。
每次对应头结点的情况都要单独处理,所以使用虚拟头结点的技巧,就可以解决这个问题。
力扣707.设计链表
这是练习链表基础操作的非常好的一道题目,考察了:
可以说把这道题目做了,链表基本操作就OK了,再也不用担心链表增删改查整不明白了。
反转链表不能够直接的去交换内部的值,在之前的文章中也详细的讲解了如何去反转,主要是利用双指针(迭代)、递归。
建议大家先学透迭代法,然后再看递归法,因为递归法比较绕,如果迭代还写不明白,递归基本也写不明白了。
结合虚拟头结点 和 双指针法来移除链表倒数第N个节点。
使用双指针来找到两个链表的交点(引用完全相同,即:内存地址完全相同的交点)
在链表如何找环,以及如何找环的入口位置。
这道题目可以说是链表的比较难的题目了。 但代码却十分简洁,主要在于一些数学证明。
算法的尽头是数学呀!!
总结:
链表这一章节打卡结束!
这一期专栏记录将我每天的刷题,希望各位的监督,也希望和各位共勉。
追光的人,终会光芒万丈!!