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

相交链表(力扣160 easy)

 160. 相交链表

算法思路

  1. 核心思想

    • 使用两个指针 pA 和 pB,分别从 headA 和 headB 开始遍历。
    • 当 pA 遍历到链表 A 的末尾时,跳转到链表 B 的头节点;当 pB 遍历到链表 B 的末尾时,跳转到链表 A 的头节点。
    • 如果两个链表相交,pA 和 pB 最终会在相交节点相遇;如果不相交,pA 和 pB 会同时到达 None
  2. 具体步骤

    • 初始化 pA = headApB = headB
    • 当 pA != pB 时:
      • 如果 pA 为空,跳转到 headB;否则继续遍历 pA.next
      • 如果 pB 为空,跳转到 headA;否则继续遍历 pB.next
    • 返回 pA(即相交节点)。
  3. 关键点

    • 通过跳转指针的方式,确保两个指针遍历的总长度相同。
    • 时间复杂度为 O(m + n),空间复杂度为 O(1)
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def getIntersectionNode(self, headA, headB):if not headA or not headB:return NonepA, pB = headA, headBwhile pA != pB:pA = headB if not pA else pA.nextpB = headA if not pB else pB.nextreturn pA

题解里看到的图解,很清晰

相关文章:

  • 分布式常见概念
  • GO中常见并发模式总结
  • 佰力博科技与您谈谈高温介电温谱仪如何保养
  • Python-ArcGIS蒸散发组分解析与GPP估算技术
  • 从中控屏看HMI设计的安全与美学博弈
  • Mac 每日磁盘写入量异常高
  • Linux 安装 Remmina
  • ubuntu 24 下使用pip 时碰到Externally Managed Environment Error的解决办法
  • Qt 多线程环境下的全局变量管理与密码安全
  • 当UI设计师遇上数字孪生:如何用设计思维重构工业流程?
  • 优秘AI短视频数字人6月功能更新预告:新增多个AIGC热门功能,智能体和知识库再升级
  • mysql安装教程--笔记
  • PXC集群
  • 判断手机屏幕上的横向滑动(左滑和右滑)
  • Elasticsearch搜索机制与分页优化策略
  • AI应用 Markdown 渲染对比与原生实现方案
  • 基于大模型预测视神经脊髓炎的技术方案大纲
  • 【AUTOSAR】时间保护(Timing Protection)概念、应用与实现源代码解析(下篇)
  • 华为HCIP-Cloud-Service认证H13-821V2.0-002
  • 大模型应用开发第三讲:大模型是Agent的“大脑”,提供通用推理能力(如GPT-4、Claude 3)
  • 网站一键收录/站长工具站长
  • 注册公司名字核名查询系统/仁茂网络seo
  • 古典 网站模板/广告网站策划方案
  • 网站开发常用的语言/抖音营销推广怎么做
  • 朝阳区建网站公司有帮云/关键词挖掘工具爱站网
  • 东莞网站推广优化/济源网络推广