当前位置: 首页 > news >正文

相交链表的解答

这题要求判断两个链表是否相交,相交就返回相交的节点,不想交就返回NULL

思路如下:

1.先判断两个链表是否相交,定义两个指针分别指向两个链表,遍历链表,这个时候两个指针分别指向各自链表的尾结点,进行比较,如果不相同就是不想交,返回NULL,相同就是相交

2.两个链表是不一样长的,那我们可以通过第一步的循环得到两个链表的长度,这个时候再定义两个指针,一个指向长链表,一个指向短链表

3.计算长短链表的距离差,让指向长链表的节点先走,达到长短链表的指针在同一起跑线的效果

4.这个时候再进行比较,遍历整个链表,如果不相同,就继续往后移动,如果相同就停止循环

5.这个时候长短指针指向相同的节点,所以随便返回一个即可

代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode* curA=headA,*curB=headB;//定义两个指针都指向头结点//先判断链表是否相交int lenA=1;//分别计算长度int lenB=1;//分别计算长度while(curA->next){curA=curA->next;lenA++;}//找到第一个链表的尾结点while(curB->next){curB=curB->next;lenB++;}//找到第二个链表的尾结点if(curA!=curB)//尾结点不相同,两个链表没有相交,返回NULL{return NULL;}//走到这里已经表示两个链表肯定会相交//通过lenA和lenB也已经知道两个链表分别含有的节点个数//长的先走,然后一起走int gap = abs(lenA-lenB);//定义两个指针,一个指向长链表,一个指向短链表struct ListNode* longlist=headA,*shortlist=headB;if(lenB>lenA){longlist=headB;shortlist=headA;}//不知道那个链表长,但是longlist一定指向长链表,shortlist一定指向短链表while(gap--)//通过循环,这个时候让长短指针指向同一起跑线{longlist=longlist->next;}while(longlist!=shortlist)//比较,如果不相同就往后{longlist=longlist->next;shortlist=shortlist->next;}//这时候已经相同,那随便返回一个即可return longlist;
}

http://www.dtcms.com/a/171143.html

相关文章:

  • SONiC-OTN代码详解(具体内容待续)
  • leetcode:最小覆盖字符串
  • LeetCode 1007. 行相等的最少多米诺旋转 题解
  • php study 网站出现404 - Page Not Found 未找到
  • 深度学习中的数据增强:提升食物图像分类模型性能的关键策略
  • VTK入门指南
  • [三分钟学算法]分治-快速排序-最小的K个数:设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。
  • 【数据结构】稀疏矩阵的快速转置
  • 架构思维:异构数据的同步一致性方案
  • P1802 5 倍经验日
  • 递归算法详解(Java 实现):从原理到高阶应用
  • 时序分解 | Matlab基于WOA-MVMD鲸鱼算法优化多元变分模态分解
  • 机器学习实操 第二部分 神经网路和深度学习 第11章 训练深度神经网络
  • GenCLS++:通过联合优化SFT和RL,提升生成式大模型的分类效果
  • 人工智能数学基础(八)—— 最优化理论
  • 生物化学笔记:神经生物学概论09 小脑的运动学习 基底神经节的结构与功能
  • C++八股--6--mysql 日志与并发控制
  • 永磁同步电机无速度算法--基于ESO-PLL的永磁同步电机无位置传感器控制
  • 2025年PMP 学习二
  • 第一章 - 质量
  • C++学习:六个月从基础到就业——C++11/14:右值引用与移动语义
  • Docker安装Gitblit(图文教程)
  • llfc项目笔记客户端TCP
  • 代码随想录算法训练营Day44
  • 2025深圳杯东三省数学建模竞赛B题完整分析论文(共27页)(含模型、可运行代码、求解结果)
  • 力扣1128题解
  • C# 定时器实现
  • 渗透测试中扫描成熟CMS目录的意义与技术实践
  • dubbo 参数校验-ValidationFilter
  • 代码随想录day7: 哈希表part02