链表题目总结:
虚拟头结点的使用:每次对应头结点的情况都要单独处理,虚拟头结点的使用可以解决这个问题。
移除链表元素:运用虚拟头结点正常删除
反转链表:双指针法,通过一个节点反转之后,还要进行接下来的反转,通过下一个节点来知道位置。(即双指针分别运用于当前值的处理以及下一个值的处理)
两两交换链表中的节点:结合虚拟头结点 和 双指针法。双指针法(即交换节点后,还要进行接下来的交换通过下一个节点来知道位置)(即双指针分别运用于当前值的处理以及下一个值的处理)
删除链表倒数第N个节点:结合虚拟头结点 和 双指针法来移除链表倒数第N个节点。通过双指针来推导出倒数第n个节点的位置
链表相交:使用双指针来找到两个链表的交点。简单的一个推理(当a->next 等于 b->next则为交点。很明显a,b要同步,所以要先操作长链表找到与短链表起始节点对应的节点,两链表对应节点同时移动)
环形链表||:在链表如何找环,以及如何找环的入口位置,主要在于一些数学证明(通过双指针异步进行,然后是否相遇判断是否有环)再用指针的行为来诠释表达式,最后指针相遇点即环起点。
双指针总结:
1:运用于当前值的处理以及下一个值的处理。
2:推导出所求节点的位置。
3:判断是否有环(通过双指针异步进行移动)。
可用指针的行为来诠释表达式
要点总结:
虚拟头结点
双指针
用指针的行为来诠释数学表达式