LeetCode 热题 HOT 100 (001/100)【宇宙最简单版】

【链表】 No. 0160 相交链表 【简单】👉力扣对应题目指路

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【力扣详解】谢谢你的支持!

题目描述:两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果不存在相交节点,返回 null 。

  • 图示两个链表在节点 c1 开始相交:

🔥 思路:先尾部对齐,然后逐个比较直至尾部;比较过程中如果发现相同的节点则找到相交节点

  • 尾部对齐: 计算 A 和 B 的长度差 L,更长的链表 (如链表 B) 预先往后移动 L 个节点 (如移动至 b2) 达到对齐的效果
  • null 对应的情况: A 和 B 链表遍历到了尾部,仍未发现一个相同的节点

参考如上思路,给出详细步骤如下:

  • 步骤一⭐定义 列表长度获取函数 get_len 以计算 A 和 B 的长度 len_A=get_len(current_A), len_B=get_len(current_B)
  • 步骤二⭐计算 A 和 B 的长度差 L= abs(len_A-len_B)
  • 步骤三⭐尾部对齐,即更长的链表预先往后移动 L 个节点
  • 步骤四⭐已尾端对齐,开始逐个比较直至链表尾部,中途如果有相同的节点 current_A 则返回
  • 步骤五⭐应对 null 对应的情况:return None
# 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
        """
         # ------------------------------------------------------------ step 1
        def get_len(head): 
            current = head
            result = 0
            while current:
                result += 1
                current = current.next
            return result

        current_A = headA
        current_B = headB

        len_A = get_len(current_A)
        len_B = get_len(current_B)

        L = abs(len_A-len_B)  # -------------------------------------- step 2

		# ------------------------------------------------------------ step 3
        if len_A > len_B:
            while L:
                current_A = current_A.next
                L -= 1
        if len_A < len_B:
            while L:
                current_B = current_B.next
                L -= 1
                
        while current_A:  # ------------------------------------------ step 4
            if current_A == current_B:
                return current_A
            current_A = current_A.next
            current_B = current_B.next
   
        return None  # ----------------------------------------------- step 5

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【力扣详解】谢谢你的支持!
🔥 LeetCode 热题 HOT 100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/843657.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【系统架构设计 每日一问】四 如何对关系型数据库及NoSql数据库选型

根据不同的业务需求和场景&#xff0c;选择适合的数据库类型至关重要。以下是一个优化后的表格展示&#xff0c;涵盖了管理型系统、大流量系统、日志型系统、搜索型系统、事务型系统、离线计算和实时计算七大类业务系统的数据库选型建议。先明确下NoSQL的分类 NoSQL数据库分类…

RabbitMQ_基础篇

文章目录 第一章 消息中间件1.1 应用场景1.2 常用消息中间件1.2.1 ActiveMQ1.2.2 RabbitMQ1.2.3 RocketMQ1.2.4 Kafka 第二章 RabbitMQ2.1 为什么选择RabbitMQ2.2 RabbitMQ简介2.3 RabbitMQ架构2.4 RabbitMQ工作模式2.4.1 Hello World2.4.2 Work Queues2.4.3 Publish/Subscribe…

分离式网络变压器的集成化设计替代传统网络变压器(网络隔离滤波器)尝试

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;今天分享的是应用了分离式网络变压器设计的的新型网络变压器&#xff08;网络隔离变压器&#xff09; 今天我们一起来看这款新型网络变压器&#xff0c;它就是应用分离式网络变压器集成到电路板上&#xff0c;加上外…

googleTest 源码主线框架性分析

本文备忘一个主题的分析过程和结论&#xff0c;即&#xff0c;googleTest框架中是如何调用相关的测试宏的&#xff1f; TEST TEST_F TEST_P 等等 1&#xff0c;googleTest 环境与简单示例 1.1 下载 googletest 并编译 下载&#xff1a; $ git clone https://github.com/goog…

linux环境安装mongoDB

一、安装单体mogodb 目标&#xff1a;在Linux中部署一个单机的MongoDB&#xff0c;作为生产环境下使用。 提示&#xff1a;和Windows下操作差不多。 步骤如下&#xff1a; &#xff08;1&#xff09;先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。 &#xff08;2&…

细说MCU用定时器控制ADC采样频率的实现方法并通过Simulink查看串口输出波形

目录 一、硬件工程 二、建立Simulink模型 1.安装MATLAB和Simulink 2.建立Simulink模型 三、代码修改 1.修改回调函数 2.产看结果 3.完整的main.c 本文作者的文章 细说MCU用定时器控制ADC采样频率的实现方法-CSDN博客 https://wenchm.blog.csdn.net/article/details/…

《python语言程序设计》第6章4题反向显示一个整数,使用函数reverse 实现 4位数

* def reverse(n):a n // 1000b n % 1000 // 100c n % 1000 % 100 // 10d n % 100 % 10return str(d) str(c) str(b) str(a)numberT 3456 aText reverse(numberT) print(f"{numberT} is reverse number {aText}")

Spring的IoC与DI介绍

Spring基础 Spring Framework系统架构 Spring Framework是Spring生态圈中最基础的项目,是其它项目的根基。 IoC(Inversion ofControl)控制反转 使用对象时,由主动new产生对象转换为由外部提供给对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。Sprin…

AP ERP与汉得SRM系统集成案例(制药行业)

一、项目环境 江西某医药集团公司&#xff0c;是一家以医药产业为主营、资本经营为平台的大型民营企业集团。公司成立迄今&#xff0c;企业经营一直呈现稳健、快速发展的态势&#xff0c; 2008 年排名中国医药百强企业前 20 强&#xff0c;2009年集团总销售额约38亿元人民币…

监控易V7.6.6.15升级详解15:智能预测管理功能

随着企业IT系统的日益复杂和运维需求的不断提高&#xff0c;传统的监控管理方式已经难以满足现代企业的需求。为了应对这一挑战&#xff0c;监控易系统近期对智能预测管理功能进行了全面升级。本次升级不仅优化了原有功能&#xff0c;还新增了一系列实用特性&#xff0c;旨在为…

openstack设置IP直接登录,不需要加dashboard后缀

openstack 实验环境&#xff0c;openstack-t版&#xff0c;centos2009 修改配置文件 [rootcontroller ~]# vim /WEBROOT /etc/openstack-dashboard/local_settings #将dashboard去掉 WEBROOT /dashboard/ #改为 WEBROOT /[rootcontroller ~]# vim /etc/httpd/conf.d/openst…

交叉编译ethtool(ubuntu 2018)

参考文章&#xff1a;https://www.cnblogs.com/nazhen/p/16800427.html https://blog.csdn.net/weixin_43128044/article/details/137953913 1、下载相关安装包 //ethtool依赖libmul git clone http://git.netfilter.org/libmnl //ethtool源码 git clone http://git.kernel.or…

yolov5进行识别安全帽

进行毕业设计 下载yolov5使用按照教程来进行就行注意事项&#xff08;有必要看看&#xff09;效果 总结 下载yolov5 地址是&#xff1a;https://github.com/ultralytics/yolov5 使用按照教程来进行就行 这里简单说一下&#xff1a; 下载需要的命令&#xff1a; pip install -…

腾讯元宝上线“3D角色梦工厂”:快速生成专属3D角色!

7月16日&#xff0c;腾讯旗下大模型应用“腾讯元宝”上线“3D角色梦工厂”&#xff0c;允许用户通过上传一张五官清晰的正面头像&#xff0c;并选择不同的角色模板&#xff0c;迅速生成个人3D角色&#xff01; 技术特点 “3D角色梦工厂”将大模型生成技术与3D应用相结合&#…

【开发实战】QT5 + OpenCV4 开发环境配置应用演示

前言 作为深度学习算法工程师&#xff0c;必须要掌握应用开发技能吗&#xff1f;搞工程肯定是必须要会界面开发&#xff0c;QT就是一个很不错的选择。本文以QT5.15 OpenCV4.8 OpenVINO2023为例&#xff0c;搭建应用开发环境&#xff0c;演示深度学习模型的QT应用案例。 开发…

提前批不要盲目投!

大家好&#xff0c;我是洋子&#xff0c;最近25届秋招提前批陆续开始了&#xff0c;特别是大厂&#xff0c;比如百度&#xff0c;深信服&#xff0c;OPPO等陆续已经启动提前批招聘 前几天我在群里发了百度的秋招提前批内推码进行内推&#xff0c;今天打开内推系统一看全凉了 …

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能

PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备&#xff0c;支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展&#xff0c;能够与医院HIS、集成平台的有效集成和融合&#xff0c;帮助医院实现了全院医学影像…

园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现

随着现代园区规模的不断扩大与功能的日益复杂&#xff0c;传统的二维地图导航已难以满足访客高效、精准定位的需求。园区内部错综复杂的布局、频繁变更的商户位置常常让访客感到迷茫&#xff0c;造成寻路上的时间浪费。园区AR导航系统以创新的技术手段&#xff0c;破解了私域地…

基于天地图使用Leaflet.js进行WebGIS开发实战

目录 前言 一、天地图的key 1、创建应用 2、调用限制策略 注&#xff1a; &#xff08;1&#xff09;日服务调用超量会暂时拒绝访问&#xff0c;次日自动开启&#xff1b; &#xff08;2&#xff09;如果服务调用过程中存在数据爬取或者下载行为&#xff0c;服务调用会被自…

【BUG】已解决:AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘

AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘ 目录 AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘ 【常见模块错误】 【错误原因】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&…