两个单链表相交的一系列问题----0_0

两个单链表相交的一系列问题----0_0


这道题emmm,难度相对来说很大额。

主要是要分成三种情况来考虑:

1. 两个链表都无环;

2. 两个链表都有环;

3. 一个有环一个无环,这种情况是不用 考虑的,一定没有交点(姥姥记住:单链表仅有一个指针,你脑补的情况都会破坏这个 要求。)

其中2又可以分为三种情况:如下:

两个单链表相交的一系列问题----0_0


而在判断它是否有交点的时候,前提是要先判断其是有环还是无环(其中这里有两种方法进行判断,第一种方法用哈希表,相对 来说比较容易,第二种利用两个指针来比较,程序都有相应的实现方法)

下面直接附上程序:

程序里面也有相应的解释和说明:

两个单链表相交的一系列问题----0_0

通过哈希表来判断该链表是有环还是无环

两个单链表相交的一系列问题----0_0

通过两个指针来判断链表是有环还是无环 

两个单链表相交的一系列问题----0_0

 通过哈希表来判断两个无环的链表是否相交

两个单链表相交的一系列问题----0_0

不用哈希表也可以实现:找出两个无环的链表是否相交,只不过要设计,要有经验


两个单链表相交的一系列问题----0_0

两个单链表相交的一系列问题----0_0

当两个链表都有环的时候,情况可能相对来说复杂一点,主要有三种情况:

两个单链表相交的一系列问题----0_0

两个单链表相交的一系列问题----0_0

有兴趣的同学可以一起来探讨~