输入两个链表,找出它们的第一个公共结点。

按照自己以往的思路肯定第一反应用HashSet和HashMap就能很快解决此问题,但是如果真的面试出了这道题目肯定不是面试官想要的思路。有一种简单的解调思路:那就是遍历两遍这两个链表,如果有重复的节点,那么一定能够使遍历的指针相等。

链接:https://www.nowcoder.com/questionTerminal/6ab1d9a29e88450685099d45c9e31e46
来源:牛客网

看下面的链表例子:
0-1-2-3-4-5-null
a-b-4-5-null
代码的ifelse语句,对于某个指针p1来说,其实就是让它跑了连接好的的链表,长度就变成一样了。
如果有公共结点,那么指针一起走到末尾的部分,也就一定会重叠。看看下面指针的路径吧。
p1: 0-1-2-3-4-5-null(此时遇到ifelse