leetcode160:相交链表
题目:
编写一个程序,找到两个单链表相交的起始节点
实例:
A: a1 → a2
↘
c1 → c2 → c3
↗
B: b1 → b2 → b3
思路:
因为链表是单向链表,所以相交链表的形状就像倒置的 Y,这就有个==特点==:相交点之后的结点都相同。所以找到第一个相同的结点就是链表的第一个公共结点。
如果正向遍历链表,因为链表的长度不相同,所以无法通过的时间使他们的步伐统一。解决办法是首先比较链表两个的长度,然后让较长的链表的先走他们长度的差值,然后同一步伐一起走,知道走到的结点相同时,就找的了第一个公共结点。
时间复杂度分析:空间复杂度O(1),时间复杂度O(n)
运行时间:2ms
//计算