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

力扣hot100从头刷----100.1环形链表

🎬 胖咕噜的稞达鸭:个人主页

🔥 个人专栏: 《数据结构》《C++初阶高阶》《算法入门》

⛺️技术的杠杆,撬动整个世界!

相交链表

相交链表
在这里插入图片描述
题目解析:

有两个单链表,现在我们已知,两个单链表的头节点是headA,headB,要求我们返回两个单链表的相加部分的第一个节点,不相等就返回nullptr。

思路:

我们先定义两个指针,ListNode* p=headA;ListNode* q=headB。将p走到相加节点的距离定义为x,q走到相加节点的距离定义为y,将相交之后一直到两节点走到空的距离设为z;已知(x+z)+y==(y+z)+x;

如果p的下一个节点不为空,那就继续走,如果已经走到空位置,那就让p走到第二个链表的头节点开始走;
与此同时q的下一个节点不为空的话,那就继续走,如果走到了空位置,那就让q走到第一个链表的头节点开始走;
因为p和q都必须走完x+y+z的长度,他们一定会在第一个相加链表的节点相交。
循环结束时,如果两条链表相交,那么此时 p 和 q 都在相交的起始节点处,返回 p;如果两条链表不相交,那么 p 和 q 都走到空节点,所以也可以返回 p,即空节点。

在这里插入图片描述

现在我们将思路转化为代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode*p=headA;ListNode* q=headB;while(p!=q){p=p?p->next:headB;q=q?q->next:headA;}return p;}
};
http://www.dtcms.com/a/554157.html

相关文章:

  • 吴镇宇做的电影教学网站做网站的服务器有什么作用
  • 如何将插入(insert)的记录id返回?
  • Cesium地图弹框实现方案演进:从组件化到动态挂载的技术探索
  • 归并|线段树|树状数组
  • 淘宝客网站程序模板便利的广州微网站建设
  • RAGFlow:部署、理论与实战(一)
  • 西安专业网站制作服务专门做动漫的网站有哪些
  • 使用 Python 向 PDF 添加附件与附件注释
  • 【开题答辩全过程】以 基于java的社区疫情防控系统设计与实现 为例,包含答辩的问题和答案
  • Android ble和经典蓝牙
  • 海珠区专业做网站公司wordpress基于谷歌框架
  • 上海网站建设制作跨境电商多平台运营
  • 军队文职资源合集
  • 堆叠和级联的详细描述
  • (125页PPT)IBM流程架构方法论及案例(附下载方式)
  • 基于AS32A601型MCU芯片的屏幕驱动IC方案的技术研究
  • 小米铁蛋电机1代驱动开发
  • 甘肃省网站备案公司网站建设设计公司哪家好
  • html5 网站建设方案中国排名高的购物网站
  • 【更新至 135 个】第一性原理计算 + 数据处理程序
  • frp+公网服务器实现内网穿透方案
  • 变量与可变性:Rust中的数据绑定
  • OpenCV:BGR/RGB转I420(颜色失真),再转NV12
  • 社区网站模板全屋设计装修效果图
  • 404-Spring AI Alibaba Graph 可观测性 Langfuse 功能完整案例
  • 济南住房和城乡建设厅网站小程序制作流程及步骤
  • 测试分类介绍
  • 上海川沙网站建设goood 谷德设计网官网
  • 做网站买什么笔记本好wordpress 关闭自动保存
  • 用jsp做网站登录界面模板代理记账公司哪家好