查找两个相交链表的第一个相交节点。
题目:
查找两个相交链表的第一个相交节点。给出两个链表,找出它们的第一个公共节点。
思路:
使用双指针。
① 定义一个快指针记作fast。让它指向长链表。定义一个慢指针记作slow,让它指向短链表。
② 记长链表的长度为 l1
,记短链表长度为s1
。让fast指针先走l1-s1
步。
③ 然后同时让fast和slow一起向前移动,如果slow==fast
则说明找到相交节点,否则就没有相交节点。
图示:
让fast指针往前走l1-s1
即 6 - 5 = 1步。如下图所示:
然后fast指针和slow指针同时向前走。每次向前走一步。
如下图,此时fast==slow,即找到相交节点12。
代码实现:
public class Solution {
public ListNode