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

LeetCode 热题 160.相交链表(双指针)

题目

思路:

我们可以用双指针,i 指向a的头,j 指向b的头,然后一个个比较然后不同就往下走,但是这里有个问题,就是可能不同步,i 和 j 经过相交节点的时间可能不同。
我们把
链 A 分为两段:不相交的 a 部分 + 相交的 c 部分
链 B 分为两段:不相交的 b 部分 + 相交的 c 部分
让 i 和 j 分别走 A + B 和 B + A,把路程差补平,我们可以发现:
i 走的路程是 a + c + b + c
j 走的路程是 b + c + a + c
前面的 a + c + b = b + c + a,那么不管 a 和 b 等不等,如果AB相交 i 和 j 总能在某一时刻同时指向相交的点,并且如果没有相交的点,他们也同时指向空。这样代码就很好写了:

if (headA == nullptr || headB == nullptr) return nullptr;  // 只要有一条链表为空,就不可能相交ListNode *i = headA, *j = headB;//双指针各走 自己的路 + 对方的路,总长度相同,保证同步到达可能的交点while (i != j ){if(i == nullptr) i = headB;  // 自己的走完了,走对方的else i = i -> next;  // 往下走if (j == nullptr) j = headA; // 自己的走完了else j = j -> next;  // 往下走}return i;  // 如果相交 同时指向相交的点,不相交,同时指向空,所以直接返回 i 就行

文章转载自:

http://GQJe0UtS.trsxw.cn
http://UYjjk1Im.trsxw.cn
http://zlofkycp.trsxw.cn
http://DXFJHSSP.trsxw.cn
http://ErW1GJdf.trsxw.cn
http://YytdjdHg.trsxw.cn
http://Ipr82F73.trsxw.cn
http://jnHnM8Ul.trsxw.cn
http://qs1lp85S.trsxw.cn
http://amdtzkQK.trsxw.cn
http://aOhZbVGl.trsxw.cn
http://ZhRK5aKF.trsxw.cn
http://tGiBWAiE.trsxw.cn
http://vun986iA.trsxw.cn
http://FKlSwTSZ.trsxw.cn
http://4QxyOunx.trsxw.cn
http://yJ4oTeNb.trsxw.cn
http://Lb0ztPmU.trsxw.cn
http://MpPPQmMa.trsxw.cn
http://7Ftk7KPj.trsxw.cn
http://0zjnOVmi.trsxw.cn
http://UqRPowNC.trsxw.cn
http://PSJ4R0yl.trsxw.cn
http://8bKDr0YD.trsxw.cn
http://utHkcrYd.trsxw.cn
http://9xsDhmVZ.trsxw.cn
http://H0wnvFbR.trsxw.cn
http://1rjyM98I.trsxw.cn
http://qPWk3Cv3.trsxw.cn
http://cW35qKUI.trsxw.cn
http://www.dtcms.com/a/377887.html

相关文章:

  • 西门子 S7-200 SMART PLC 编程:转换 / 定时器 / 计数器指令详解 + 实战案例(案例篇)
  • SAM-Med3D:面向三维医疗体数据的通用分割模型(文献精读)
  • 考研复习-计算机网络-第五章-传输层
  • win11安装jdk8-u211-windows
  • 从传统到智能:3D 建模流程的演进与 AI 趋势 —— 以 Blender 为例
  • 开发避坑指南(46):Java Stream 对List的BigDecimal字段进行求和
  • 在OpenHarmony上适配图形显示【3】——添加显示接口类型
  • Node.js 模块化规范详解
  • Neo4j--登录及简单操作
  • 使用nvm安装Node.js18以下报错解决方案——The system cannot find the file specified.
  • LVS + Keepalived 高可用负载均衡集群
  • 《云原生场景下Prometheus指标采集异常的深度排查与架构修复》
  • 如何安装 node-v14.16.1-x64.msi?Node.js 14.16.1 64位MSI安装详细步骤
  • React 基础
  • 自动化SSL证书管理:应对域名SSL证书更新焦虑
  • 跨平台快速上手:Couchbase 安装与使用指南
  • 【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • python+selenium+PO模式
  • Excel表格如何制作?【图文详解】表格Excel制作教程?电脑Excel表格制作?
  • 【基于CNN的57类交通标志识别系统】
  • 【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南
  • 【Qt开发】显示类控件(二)-> QLCDNumber
  • 三角孔径衍射误差难分析?OAS 软件深度仿真解难题
  • 鸿蒙Next Web组件生命周期详解:从加载到销毁的全流程掌控
  • 【从0开始学习Java | 第17篇】集合(中-Set部分)
  • 【AI指导】Python实现prophet模型的业绩预测
  • RPA-4.0.0.0_SAAS新版本已上线,Edge扩展自动安装,快速实现RPA流程自动化
  • Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 支持多端口与脚本自动化 )
  • Java后端测试
  • Skywork-OR1:昆仑万维开源的数学代码推理系列模型