两单向链表相交问题

来源:互联网 发布:输入 排序 c语言 编辑:程序博客网 时间:2024/05/16 13:43

给出两个单向链表的头指针,比如 h1、h2, 

判断链表是否相交,如果不相交返回 NULL;如果相交,返回指向第一个相交节点的指针; 

时间复杂度控制在 O(n)的前提下。 

 这道题首先要弄明白的是,两单向链表相交的话,一定是 Y 型相交,不可能出现 X型,弄清楚这点后接

下来的工作就是: 

(1)先找到 h1,h2 的最后一个节点 p1 和p2,同时记录节点数量 a,b; 

(2)判断最后一个节点是否相同; 

如果不相同则没相交; 

如果相同,则从第一个节点和|a-b|+1 个节点开始比较,看是否相等,不相等就寻找下一个节点直到找到

交叉点。 

原创粉丝点击