标签:
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