单链表(七)——判断两链表是否交叉
来源:互联网 发布:渭南网络电视台 编辑:程序博客网 时间:2024/04/30 01:23
判断两链表是否交叉主要有以下三种方法:
1、最简单的方法就是先顺序访问其中一个链表,在每访问一个节点时,都对另外一个链表进行遍历,看节点是否相等,直到找到一个相等的节点位置,如果链表长度分别是m,n 则时间复杂度为O(mn)
3、我们可以将其中一个链表的首尾相连,然后判断另一个链表是否含环。如果含环,则两链表交叉;否则,不交叉。时间复杂度是O(max[m,n])
下面针对方法2进行实现
/********************************************************************** 函数名称:linklist *IsCross(linklist *head1, linklist *head2)* 函数功能:判断两个链表是否交叉。如果交叉,则返回head1链表的交叉点;否则,返回NULL* 参 数:head1----第一个链表的头结点head2----第二个链表的头结点* 返 回 值:交叉点,无交叉返回NULL* 说 明:无*********************************************************************/linklist *IsCross(linklist *head1, linklist *head2){linklist *tp1=head1, *tp2=head2;int NodeNum1=0, NodeNum2=0; // 初始化2链表节点个数if(head1==NULL || head2==NULL)return NULL;// 统计链表1的节点个数while(tp1->next!=NULL){NodeNum1++;tp1 = tp1->next;}// 统计链表2的节点个数while(tp2->next!=NULL){NodeNum2++;tp2 = tp2->next;}if(tp1!=tp2) // 如果两链表的最后一个节点都不一样,那么说明两链表无交叉点return NULL;else // 两链表有交叉点{int i;tp1 = head1->next;tp2 = head2->next;if(NodeNum1 > NodeNum2){for(i=0; i<NodeNum1-NodeNum2; i++)tp1 = tp1->next;while(tp1->next!=NULL)if(tp1==tp2)return tp1;else{tp1 = tp1->next;tp2 = tp2->next;}}else{for(i=0; i<NodeNum2-NodeNum1; i++)tp2 = tp2->next;while(tp1->next!=NULL)if(tp1==tp2)return tp1;else{tp1 = tp1->next;tp2 = tp2->next;}}}}
0 0
- 单链表(七)——判断两链表是否交叉
- 判断两个单链表(无环)是否交叉
- 如何判断两个单链表(无环)是否交叉
- 判断时间是否交叉
- Redis研究(七)—如何判断set/get是否为原子操作
- 判断两矩形是否交叉(包括包含的情况)
- 判断两矩形是否交叉(包括包含的情况)
- 判断两矩形是否交叉(包括包含的情况)
- 判断两矩形是否交叉(包括包含的情况)
- 判断连个单链表是否交叉,并找到交叉点
- 简单的判断时间是否交叉
- 判断两个链表是否交叉
- 判断单链表是否存在环 && 判断两链表是否相交
- 判断时间段是否交叉(比如12:34~13:49与11:44~14:59)
- 算法题 1 判断两条单链表是否交叉 一百度实习笔试题(2012.5.6)
- 223. Rectangle Area扩展--判断两矩形是否交叉(包括包含的情况)
- 算法-单链表-判断链表是否有环,是否交叉,计算环长,计算入环节点
- 判断两个链表是否交叉,并求出交叉点
- CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- java 猜数字小游戏
- POJ 2686 Traveling by Stagecoach
- poj2594:Treasure Exploration
- c++迭代器详解(一):back_inserter, front_inserter,inserter
- 单链表(七)——判断两链表是否交叉
- 斯坦福Developing iOS 8 Apps学习笔记(四)
- linux 安装flash
- 《剑指offer》求1+2+3+...+n
- Eclipse关联java源代码
- 【软考视频基础知识】——数据结构
- PS CS6中如何制作简易GIF动画图片
- 2015.9.13
- 操作系统进程间通信的方式