● 24. 两两交换链表中的节点
算法思想:设置父节点,指向头节点。要操作两个节点进行交换,必须要站在两个节点之外的前一个节点进行操作。
● 19.删除链表的倒数第N个节点
算法思想:双指针。遍历节点,计算长度,求差即可以找到要删除的节点的前一个节点。
● 面试题 02.07. 链表相交
算法思想:分别计算两个链表的长度,求出长度差c。长的链表的指针先走c步,短的链表指针在头指针位置保持不变。此时a、b两个链表指针剩下要走的长度是一致的。
同时操作两个指针,直到他们相遇的位置,就是相交的节点。
● 142.环形链表II
算法思想:
1.设置两个快慢指针,快指针走2步的时候,慢指针走1步。相遇的时候肯定在环里。如果指针为空,说明不存在环,直接返回。
2.此时可以操作指针计算环的大小count.
3.设置前后两个指针,分别指向头节点。前指针先走count步,再同时操作两个节点同时走,直到两个节点相遇就是换的入口节点。