两个可能相交的单链表,找出他们的交点
模型
head
a1 a2
\ /
\ /
\ /
|
|
|
|
tail
注意是单链表,所以他们的形状会是Y型而非X型。
分析
首先,最简单的一种方法是遍历,只是时间复杂度特别高。
简单来说,这两条链表的相交前长度都是不同的,但相交后的长度一致,那么只要想办法让他们从后往前遍历,就很容易找到交点。
- 存数组
- 用栈
其实都是相近的办法,但是栈比较高大上。
那么,就好办了,同时出栈或者同时逆序遍历,遇到下一节点不同的就是交点。