首页 > 其他 > 详细

判断两个链表是否相交(不带环)

时间:2015-04-15 22:49:25      阅读:339      评论:0      收藏:0      [点我收藏+]

1---2---3

    ---4---5---6---7

11---12---

 

链表1:1---2---3---4---5---6---7

链表2:11---12---4---5---6---7

 

解决方案:

1.直接将链表1中的节点与链表2中的节点进行比较;如果存在相同的则相交。缺点:效率慢。

2.将链表1建立hash表;用链表2中的节点在hash表中进行查询;缺点:增加了内存消耗。

3.将链表1的尾节点指针指向链表2的头节点;转而进行链表是否有环判断;如果有环,则相交;

由于链表2的头节点必然在环中,可直接从链表2的头节点开始进行是否有环判断。

4.如果链表1与链表2相交;则两个链表的最后一个节点必然相同;可直接用两个链表的最后一个节点是否相同进行判断。

 

 

 

#2. 如果链表1和链表2相交,如何求出两个链表的第1个相交的节点?

解决方案:

假设链表1的长度为len1;链表2的长度为len2;则将长度较大的链表先移动abs(len1-len2);然后两个链表在同时进行遍历,

遇到第一个相同的节点即为第1个相交的节点。

 

判断两个链表是否相交(不带环)

原文:http://www.cnblogs.com/hj-blog/p/4430337.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!