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

相交链表(力扣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

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

http://www.xdnf.cn/news/9197.html

相关文章:

  • 蓝凌EKP平台表单控件升级:一行配置引入LayUI新UI体验
  • React useEffect和useEffectLa
  • 从核心数据透视吹风机行业:用户需求演变与产品创新图谱
  • Redis 集合、有序集合与通用命令详解
  • 实验设计与分析(第6版,Montgomery)第3章单因子实验:方差分析3.11思考题3.6 R语言解题
  • HTML5 全面知识点总结
  • Point-wise vs Pair-wise vs List-wise 简述
  • 系统开发和运行知识
  • 什么场景下能够用到根据id批量查询用户
  • sockaddr_in
  • 08_预处理与缩放
  • 关于 smali:1. Smali 基础语法入门
  • 一款不错的嵌入式开发自动化测试平台
  • Trivy 镜像漏洞扫描:从零入门到实战指南
  • java基础(面向对象进阶高级)泛型(API一)
  • 智能AI之常用协议普及
  • HarmonyOS优化应用文件上传下载慢问题性能优化
  • CMU-15445(5)——PROJECT#1-BufferPoolManager-Task#3
  • kali切换为中文
  • 输入一串字符,统计其中字母的个数
  • Python5.26打卡(day27)
  • 【SQL server】 SQL子查询:与连接的区别、类型划分、相关与非相关子查询对比
  • YOLOv12增加map75指标
  • [QMT量化交易小白入门]-五十七、ETF历史行情分钟线下载
  • 25盘古石初赛wp(部分)
  • Java----自动装箱和自动拆包 与 泛型
  • 大模型的检索增强生成综述研究
  • 用python写节奏大师小游戏
  • TMS320F28388使用sysconfig配置SCI通信(RS485+FIFO+Modbus)
  • 第4章-操作系统知识