代码随想录算法训练营第四天

52 阅读1分钟

两两交换链表中的节点

关键是想清楚反转时指向的步骤顺序

image.png

并且需要用临时节点将节点一和节点三存起来,以防止指向时丢掉

19. 删除链表的倒数第 N 个结点

定义虚拟头节点,定义一个快指针,一个慢指针 快指针先走n+1步后,两个指针同时移动,慢指针可移动到倒数第n个节点的前一个位置

面试题 02.07. 链表相交

1.分别求出链表A和链表B的长度 2.重新指向两个链表的头节点 3.始终保持链表A时较长的那一个,否则交换长度和交换节点 4.求出长度差,让链表A的指针指向与链表B对齐的位置(同一起点) 5.开始遍历,遇到相同则直接返回

142. 环形链表 II

1.定义一个慢指针,一个快指针

快指针一次走两步,慢指针一次走一步,两个指针若相遇,则可以判断次链表有环

2.在这基础上,定义两个指针,一个指向fast,一个指向head,两指针相遇的位置即为环的入口