码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-15 22:52:35      阅读:124      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!