单链表
对于单链表的操作,有很多技巧性的东西
下面我们使用六道题来以题明技巧
合并两个有序链表
1 | class Solution { |
合并 k 个有序链表
使用一个动态数组存储所有的链表的头结点
1 | class Solution { |
单链表的倒数第 k 个节点
1 | class Solution { |
寻找单链表的中点
使用快慢指针法,slow
走一步,fast
走两步,当fast走到最后的时候,slow
自然就在中间了
1 | class Solution { |
当单链表节点个数为奇数的时候,slow指向的是正中间的位置
当单链表节点个数为偶数的时候,slow指向的是中间靠右的位置
判断单链表是否包含环
1 | public class Solution { |
进阶:找到成环的起点
1 | public class Solution { |
判断两个单链表是否相交并找出交点
1、将第一条链表的尾部的next指向第二条链表的头部,然后返回成环的那个起点
注意:此法只是一个思路,但是力扣中这道题的校验是不允许修改原来的链表的
1 | public class Solution { |
2、使用技巧直接找到相交点
1 | public class Solution { |