1. 理论基础
1.1 链表主要有:单链表,双链表,循环链表
1.2 链表的节点在内存中是分散存储的,通过指针连在一起
2. 经典思路
2.1 虚拟头结点
在操作当前节点时,往往需要用到该节点的前节点和后节点,面对头结点时则要单独提出来解决。
因此,可以设置一个虚拟头结点,令其指向真实头结点,当需要返回头结点时,返回虚拟头结点的下一节点即可。
2.2 反转链表
迭代法:设置一个节点变量来暂时保存节点,再依次反转即可。
递归法:调用自身的思想,需要注意边界条件的设置,反转链表可作为递归入门练习。
2.3 删除节点
结合虚拟头结点和双指针法。
2.4 两链表相交
双指针法,对齐两链表尾部后从较短链表的头开始依次向后排查。
2.5 环形链表
重点在于找环以及环的入口,考察数学证明,便捷方法是采用哈希表。