LeetCode--Intersection of Two Linked Lists (两个链表的交点)Python

2023-11-08

题目:

给定两个链表,求这两个链表的交点。若没有交点,则返回空。样例如下(返回交点c1):

解题思路:

思路1:暴力思路,n方复杂度。对两个链表分别进行遍历,找到相同的节点即可O(n*m),空间复杂度为O(1)。

思路2:使用哈希表,即python中的字典。先遍历一个链表,并将链表内容放入字典。再遍历另外一个链表,看遍历到的位置是否存在于字典中,存在则返回当前结点。若遍历结束仍不存在则返回空。检索复杂度为O(m+n),空间复杂度O(m+n)

思路3:先分别计算两个链表的长度。先读较长的链表,读到两个链表等长的时候再同时读两个链表,并判断两个链表遍历到的当前节点是否相同。检索复杂度为O(m+n),空间复杂度为O(1)

代码(Python,思路3):

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

class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        if headA==None or headB==None:
            return None
        
        def readLen(head):
            count = 0
            while(head):
                if head==None:
                    return count
                else:
                    head = head.next
                    count = count+1
            return count
        len_A = readLen(headA)
        len_B = readLen(headB)
        
        if len_A >= len_B:
            for i in range(len_A-len_B):
                headA = headA.next
        else:
            for i in range(len_B-len_A):
                headB = headB.next
                
        min_len = min(len_A,len_B)
        for i in range(min_len):
            if headA==headB:
                return headA
            else:
                headA = headA.next
                headB = headB.next
        return None


附求助:

有哪位大佬知道这个题目在用leetcode的编辑器时找不到“runcode”按钮的原因?刷这个题目只能盲交,都没有在线测试TT 跪求原因!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode--Intersection of Two Linked Lists (两个链表的交点)Python 的相关文章

  • js逆向-某市公共资源交易网

    目标网站首页 aHR0cDovL2dnenkuendmd2IudGouZ292LmNu 分析页面 aHR0cDovL2dnenkuendmd2IudGouZ292LmNuL3h3engvaW5kZXhfMi5qaHRtbA 话不多说 开始今
  • 使用systemctl命令启动和关闭mysql

    以前都用service命令管理mysql 现在liunx系统升级了 又有了新的更好的方法管理系统进程 现在我们来学习如何用systemctl命令管理mysql Systemctl是一个systemd工具 主要负责控制systemd系统和服务

随机推荐

  • P5367 【模板】康托展开【树状数组优化】

    题目链接 include
  • DCIC-A城市巡游车与网约车运营特征对比分析-2-可视化

    接前述 数据读取 上次遗留下两个问题 1 该案例的数据集过多 如果每次读一个数据的部分行 比如10000行 那在拼接所有数据集的时候也是每个数据只读10000行吗 回答 虽然我们通过更改数据类型 使得原始数据的大小有所改变 但如果想要把所有
  • 人工智能数据标注案例之人脸识别案例

    人工智能是未来的发展趋势 人脸识别是人工智能应用最为广泛的一项技术 在现实生活中 我们使用的支付宝 微信的安全验证 智能手机的人脸解锁功能等都运用到了人脸识别 作为人工智能发展的三大要素之一 数据的作用不可小觑 其中数据采集与数据标注是数据
  • MATLAB图像识别技术在棉花叶面病虫害识别上的

    MATLAB图像识别技术在棉花叶面病虫害识别上的应用 摘 要 棉花是新疆地区种植最为广泛的经济作物 利用MATLAB图像识别技术将相机采集到的患病棉花叶面经过图像灰度化 图像增强 图像二值化 图像形态学处理 图像填充 图像分割等预处理后用函
  • C语言数组第十课---------------三子棋-------数组经典练手题

    作者前言 作者介绍 作者id 老秦包你会 简单介绍 喜欢学习C语言和python等编程语言 是一位爱分享的博主 有兴趣的小可爱可以来互讨 个人主页 小小页面 gitee页面 秦大大
  • 使用MATLAB GUI实现运动目标追踪

    使用MATLAB GUI实现运动目标追踪 物体追踪是计算机视觉中的一个重要研究领域 它可以应用于自动驾驶 智能监控等多个领域 本篇文章将介绍如何使用MATLAB GUI实现运动目标的追踪 并给出相应的源代码 前置知识 在开始之前需要掌握以下
  • 程序静态分析第一课

    程序静态分析第一课 该课程主要内容来自北京大学熊英飞老师的 软件分析技术 事例一 飞机为了保证飞行安全 在很多设备上会设置冗余设备 一般来说都是一主二备三应急 一架飞机上同样功能的设备设施 会安装起码三套或更多来应付其中一套出故障而导致飞机
  • pe中怎么卸载服务器系统更新,如何卸载win7系统更新用pe装win7

    缺省设置 724 512M物理内存 改变命令 代码如下 sysctl w vm vfs cache pressure 200 sysctl w vm min free kbytes 1024 通过本次的分享我们在使用参数优化的时候遇到的问题
  • html标签(下)----常用高级标签

    下列代码可直接运行 br br br br br 空 nbsp nbsp nbsp 格 div style width 400px height 60px background color darkgrey div
  • Oracle锁机制

    增删改查中查询不需要锁 即使数据被锁定也能在还原信息中查询出锁定之前的值 其余三项均会使用行级锁 直到用户commit或rollbak 锁是在指定语句的最低可能级别自动获取的 增删改获取行级锁而不是块级或表级 修改对象 如移动表 会获取对象
  • 朝代官制,6部是什么

    六部 六部就是我们所熟知的 吏 户 礼 兵 刑 工 它是隋唐以来中央行政机构中的重要一极 隋唐开创的三省六部制最早可以追溯至西周时期 但史料对此记载颇少 当时相应的中央行政机构所管辖的职能远远没有后世开创的六部职能完善 秦朝开创了三公九卿制
  • 星际争霸2神族全兵种介绍

    星际争霸2神族全兵种介绍 貌似很多兵种啊 而且根据目前的demo 兵种相克非常明显的话游戏节奏可能变慢 不知道可玩性会不会像1那么高 星际2神族全兵种公布 2007 6 18 作者 OGame NeT Sodoes 更多精彩尽在神州论坛 翻
  • 一个在终端实现类Linux shell(cd ls命令)UI界面的项目(C语言实现)

    一个在终端实现类Linux shell cd ls命令 UI界面的功能 C语言实现 这2天做了一个类似Linux shell的UI界面 目前已初步完成cd ls help pwd quit等命令 在Linux下实现 效果图见下图 ls命令
  • websocket深入浅出

    websocket简介 websocket是什么 答 它是一种网络通信协议 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 为什么需要websocket 疑问 我们已经有了 HTTP 协议 为什么还需要另一个协议
  • [STM32WBA]【STM32WBA52CG测评】-3- 蓝牙BLE:LED与button例程分析

    STM32WBA52CG是支持蓝牙BLE 5 3 官方提供的STM32Cube FW WBA V1 1 0资料包中提供了一个非常好的入门案例 BLE p2pServer 准备材料 Keil ST BLE Toolbox 图形化配置时钟 主要
  • QT安装mqtt环境(这里默认以及有了QT)

    首先 QT的版本和mqtt包的版本要一致 我这里QT和mqtt的版本都是5 14 2 QT安装包 5 14 2 下载地址 Index of archive qt 5 14 mqtt包的一个连接 可以选择相应的版本 GitHub qt qtm
  • eclipse easyui 正常代码老是报错 红色波浪线

    即使交换位置 手敲行依旧报错 看了三篇 还是看不出问题 关于正确代码会出现很多红色波浪线 网上的办法是把eclipse软件关闭 然后重新启动即可消除 但是这种方法有个弊端 当再次编辑的时候依旧很出现很多波浪线 尝试了以下两种方法 https
  • Retrofit 2.5 框架使用与源码分析

    Retrofit 2 5 框架使用与源码分析 Retrofit 框架使用 请求内容与返回值 使用PostMan进行请求测试 请求 https api github com search repositories q android 返回值
  • 【计算机视觉

    文章目录 一 检测相关 7篇 1 1 Vehicle Occurrence based Parking Space Detection 1 2 Squeezing nnU Nets with Knowledge Distillation f
  • LeetCode--Intersection of Two Linked Lists (两个链表的交点)Python

    题目 给定两个链表 求这两个链表的交点 若没有交点 则返回空 样例如下 返回交点c1 解题思路 思路1 暴力思路 n方复杂度 对两个链表分别进行遍历 找到相同的节点即可O n m 空间复杂度为O 1 思路2 使用哈希表 即python中的字