如何判断两个单向链表是否有相交,并找出交点
如果两个单向链表相交,一定是形成Y字形,而不会是X字形。基于这个想法,可以判断两链表是否相交。
{
NODE* p1 = pHead1;
NODE* p2 = pHead2;
int i = 1, j = 1, k = 0, f = 0;
if(pHead2 == NULL || pHead2 == NULL)
{
return NULL;
}
while(p1->next != NULL)
{
p1 = p1->next;
i++;
}
while(p2->next != NULL)
{
p2 = p2->next;
j++;
}
if(p1 != p2)
{
return NULL; //如果尾节点不同,直接返回NULL
}
else //否则寻找第一个相同的节点
{
p1 = pHead1; // 1
p2 = pHead2; // 2
f = fabs(i, j); //计算两条链表长度的差
if(i > j) //如果第一个链表比第二个长,第一个链表先向前移动f步
{
for(k=0; k<f; k++)
{
p1 = p1->next;
}
while(p1 != p2)
{
p1 = p1->next;
p2 = p2->next;
}
return p1;
}
else
{
for(k=0; k<f; k++)
{
p2 = p2->next;
}
while(p1 != p2)
{
p1 = p1->next;
p2 = p2->next;
}
return p1;
}
}
}
转载于:https://www.cnblogs.com/songQQ/archive/2009/12/01/1614661.html
如何判断两个单向链表是否有相交,并找出交点相关推荐
- 【链表】如何判断两个单向链表是否有相交,并找出交点
判断两个链表是否相交:(假设两个链表都没有环) 1.判断第一个链表的每个节点是否在第二个链表中 2.把第二个链表连接到第一个后面,判断得到的链表是否有环,有环则相交 3.先遍历第一个链表,记住最后一个 ...
- 判断两个单向链表是否相交
链接:http://www.cnblogs.com/mengdd/archive/2013/03/14/2958642.html 题目来源 <编程之美>3.6节. 给出两个单向链表的头指针 ...
- 判断链表是否相交并找出交点
问题概述 单链表定义如下: public class ListNode {int val;ListNode next;ListNode(int x) {val = x;next = null;}} 编 ...
- neo4j 查询同一节点的两个上级_链表的魅力:两个单向链表的第一个交点
最近听了左神的算法课,对一些常用数据结构以及算法改进的思路有了更深的理解,特此总结,不定期更新算法题目以及答案总结!笔者使用C++进行算法重现!虽然左神使用的是JAVA,但他自己也说了,算法与语言无关 ...
- 7_2判断两个单链表是否相交,若相交,求出第一个交点
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4251372.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己 ...
- c++如何判断两个字符串是否相同?_链表 | 如何判断两个单链表(无环)是否交叉...
如何判断两个单链表(无环)是否交叉 单链表相交指的是两个链表存在完全重合的部分,如下图所示 在上图中,这两个链表相交于结点5,要求判断两个链表是否相交,如果相交,找出相交处的结点. 分析 Hash法 ...
- 判断两个单链表是否相交及找到第一个交点
题目:给两个单链表,如何判断两个单链表是否相交?若相交,则找出第一个相交的节点. 这道题的思路和解法有很多,在这把这道题的解法做一个详细的总结. 解这道题之前,我们需要首先明确一个概念: 如果两个 ...
- 笔试算法题(28):删除乱序链表中的重复项 找出已经排好序的两个数组中的相同项...
出题:给定一个乱序链表,节点值为ASCII字符,但是其中有重复项,要求去除重复项并保证不改变剩余项的原有顺序: 分析:创建一个256(2^8)大小的bool数组,初始化为false,顺序读取链表,将字 ...
- 美团点评_给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。
给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度. import java.util.*; public class Meituan_4 {public static void ...
最新文章
- javascript迭代_探索JavaScript迭代
- R语言——linux离线安装R包
- VTK:几何对象之PolyLine
- ACL 2019 | 图表示解决长文本关系匹配问题:腾讯提出概念交互图算法
- c语言随机数循环延迟,C语言生成随机数的函数、延时函数
- RT-Thread设备框架学习感悟
- cuda 核函数 for循环_【CUDA 基础】4.4 核函数可达到的带宽
- 使用maven给jar包生成对应的pom文件
- flutter 判断是不是调试模式_Flutter之撸一个漂亮的登录界面的总结
- JavaScript函数,思维导图
- Linux7(CentOs7.5)安装ssh、和修改ssh端口号
- ABB伺服驱动调试(四)
- word论文排版,页码和页眉
- 机器学习,分类算法(饭店评价的例子)
- 我希望进入大学时就能知道的一些事儿
- win10应用商店无法打开重新 加载
- java扫雷初级代码_运行在Eclipse环境下的java扫雷游戏的初级代码是什么?
- Dos命令 netstat -ano 查看端口占用及关闭进程
- LTE物理信道PHICH--学习笔记
- 程序员需知的11个在线教程网站,建议收藏!
热门文章
- 引起SQL数据库超时的问题分析及解决办法
- 《重构,改善既有代码的设计》读书笔记
- 苹果宣布创立欧洲首个iOS开发中心
- callable object与新增的function相关 C++11中万能的可调用类型声明std::function...
- JFreeChart的简单图表的制作------柱形图
- 穿透Session 0 隔离(一)
- 为什么static成员一定要在类外初始化?
- 《Algorithm算法》笔记:元素排序(2)——希尔排序
- ajax方法完整的事件流
- 重构alert,confirm