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

leetcode-相交链表

160. 相交链表

注:两个链表相交不是指两个节点的值相等,而是指节点所在的地址

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]:
        curA = headA
        curB = headB
        lenA = 0
        lenB = 0
        # 求出两个链表的长度
        while curA:
            lenA += 1
            curA = curA.next
        while curB:
            lenB += 1
            curB = curB.next
        # 这个地方是因为上面求长度的时候已经遍历到curA和curB的末尾了
        curA = headA
        curB = headB
        if lenA > lenB:
            lenA, lenB = lenB, lenA
            curA, curB = curB, curA
        # 使curA和curB在同一起点上
        for _ in range(lenB - lenA):
            curB = curB.next
        
        while curA:
            if curA == curB:
                return curA
            else:
                curA = curA.next
                curB = curB.next
        return None

http://www.dtcms.com/a/7647.html

相关文章:

  • 机器学习笔记 - 基于自定义数据集 + 3D CNN进行视频分类
  • 表单的总数据为什么可以写成一个空对象,不用具体的写表单中绑定的值,vue3
  • 大模型实战营Day5笔记
  • 科技云报道:金融大模型落地,还需跨越几重山?
  • 【Docker】Dockerfile 指令详解
  • 灰度图像的自动阈值分割
  • 数学建模--比赛
  • 【MySQL】MySQL 8.0 状态变量(Server Status Variables)以及SHOW STATUS命令
  • 瑞_数据结构与算法_二叉树
  • java SSM园林绿化管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • 【MySQL安装】附软件下载:压缩包版+docker安装
  • 双指针算法专题
  • What is `StringEscapeUtils.escapeHtml4` does?
  • 【明道云】学习笔记1-了解APaaS
  • 数据结构·顺序表应用
  • Golang 中的反射,并用来获取数据类型
  • 如何将想要执行的代码和Spring Boot 项目的启动类一起执行(ES为例)
  • 【高危】Apache Solr 环境变量信息泄漏漏洞
  • 37-WEB漏洞-反序列化之PHPJAVA全解(上)
  • 【刷题笔记4】
  • IOT pwn
  • Redis 笔记一
  • 数据分析实战:城市房价分析
  • 从浅入深讲解Java继承
  • ctfshow-反序列化(web267-web270)
  • 用的到的linux-Day1
  • 100天精通Python(实用脚本篇)——第113天:基于Tesseract-OCR实现OCR图片文字识别实战
  • 如何发布自己的npm包
  • C语言算法赛——蓝桥杯(省赛试题)
  • 基于SpringBoot Vue高校失物招领系统