给出两个单向链表的头指针,比如 h1、h2,
判断链表是否相交,如果不相交返回 NULL;如果相交,返回指向第一个相交节点的指针;
时间复杂度控制在 O(n)的前提下。
这道题首先要弄明白的是,两单向链表相交的话,一定是 Y 型相交,不可能出现 X型,弄清楚这点后接
下来的工作就是:
(1)先找到 h1,h2 的最后一个节点 p1 和p2,同时记录节点数量 a,b;
(2)判断最后一个节点是否相同;
如果不相同则没相交;
如果相同,则从第一个节点和|a-b|+1 个节点开始比较,看是否相等,不相等就寻找下一个节点直到找到
交叉点。