当前位置: 首页 > 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

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

相关文章:

  • 详解MySQL调优
  • SAAS架构设计2-流程图-用户与租户之间对应关系图
  • 大模型(7)——向量模型(向量化存储)
  • 第三章、运动学逆解(双足轮根据腿高求舵机角度)
  • 跨境快消品市场迎来爆发拐点:解码亚马逊“超级快消周“首日战报
  • 5G 网络中的寻呼流程
  • 聚焦北京央美备考画室:探寻实力之巅
  • java的vscode扩展插件
  • 实验设计与分析(第6版,Montgomery)第3章单因子实验:方差分析3.11思考题3.6 R语言解题
  • 【会员专享数据】1980—2022年中国0.1°分辨率逐日、逐月、逐年风速栅格数据
  • 数据库表添加索引
  • 天大《电视原理》背诵考点整理+计算/框图/作业题 (个人整理)
  • gbase8s统计更新(UPDATE STATISTICS)介绍
  • 【详细记录】我的第一次裸片硬件尝试:stm32f103c8t6最小核心板一板成
  • Linux--CentOs 8配置及基础命令
  • 以鸿道工业操作系统为核心,打造工业智能机器人新生态
  • 《富有的习惯》
  • 前端Vue3列表滑动无限加载实现
  • Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
  • 深入理解Java中的BigDecimal:高精度计算的核心工具
  • 河间专业做网站电话/网络项目发布网
  • 长春优惠做网站/百度手机提高关键词排名
  • 企业建站公司服务/环球贸易网
  • 怎么自己做淘宝客网站/一站式网络推广服务
  • 一个网站怎么做软件好用/谷歌app下载 安卓
  • 哪个网站做高仿衣服/企业网络营销策划书