相交链表--力扣160

news2024/10/25 8:14:58

相交链表

  • 题目
  • 思路
  • C++代码

题目

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

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

在这里插入图片描述

思路

求两个链表的相交结点,使用双指针法,求出两个链表的长度的差值gap,让长的那一个链表先走gap步,使两个链表对齐,然后同时移动两个链表,直到找到相等的结点为止。

C++代码

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode* curA = headA;
        ListNode* curB = headB;//用于遍历的指针
        int lenA = 0;
        int lenB = 0;//两个链表的长度
        // 求链表A的长度
        while(curA != NULL) {
            lenA++;
            curA = curA->next;
        }
        // 求链表B的长度
        while (curB != NULL) { 
            lenB++;
            curB = curB->next;
        }
        curA = headA;//返回开始位置
        curB = headB;
        if(lenA >= lenB){
            int gap = lenA -lenB;//两个链表的长度的差值
            while(gap--) curA = curA->next;
            while(curA != NULL){
                 if (curA == curB) {
                return curA;
            }
             curA = curA->next;
             curB = curB->next;
            }
           
        }
        if(lenA < lenB){
            int gap = lenB - lenA;
            while(gap--) curB = curB->next;
            while(curB != NULL){
                 if (curA == curB) {
                return curB;
            }
             curA = curA->next;
             curB = curB->next;
            }
           
        }  
         return NULL;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AMD模块的使用案例-基于普通htm

AMD模块的使用案例-基于普通html 实现过程结果 实现过程 AMD 是一种适用于浏览器环境的模块化规范&#xff0c;主要用于异步加载模块。RequireJS 是实现 AMD 的一个流行库。 ​ 使用案例&#xff1a; 文件目录&#xff1a; index.html&#xff0c;使用<script data-main&…

【SpringCloud-Seata客户端源码分析01】

文章目录 启动seata客户端1.导入依赖2.自动装配 发送请求的核心方法客户端开启事务的核心流程服务端分布式事务的处理机制 启动seata客户端 1.导入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent…

不同表格式下的小文件治理方式(开源RC file/ORC/Text非事务表、事务表、Holodesk表格式..)

友情链接&#xff1a; 小文件治理系列之为什么会出现小文件问题&#xff0c;小文件过多问题的危害以及不同阶段下的小文件治理最佳解决手段 小文件过多的解决方法&#xff08;不同阶段下的治理手段&#xff0c;SQL端、存储端以及计算端&#xff09; 概览 在前两篇博文中&am…

短信内容关键字被拦截-阿里云通知类短信

通知类短信。地产、留学、招聘、交友、游戏等行业仅支持发送验证码。 注意不要有字眼&#xff0c;替换为相似的词语。否则拦截率很高

Java多线程基础知识-2

线程的3个方法&#xff1a; Thread.sleep()&#xff1a;当前线程睡眠多少毫秒&#xff0c;让给其他线程去执行。 Thread.yield()&#xff1a;当前线程退出一下&#xff0c;进入到等待队列&#xff0c;让其他线程执行&#xff0c;即让出线程一下。 Thread.join()&#xff1a;…

LEVER:根据执行结果来改进语言编码生成的高效方法

译者 | 赵海树 单位 | 东北大学自然语言处理实验室 1.论文介绍 基于大语言模型LLM训练从语言到编码的生成的方向取得了重要进展&#xff0c;基于执行结果的启发式方法以及LLM解码、样本修剪和测试用例重新排序的结合方式成为了当前最为高效的方法。但当前的许多真实世界语言不…

鸿蒙 Web组件的生命周期(api10、11、12)

概述 开发者可以使用Web组件加载本地或者在线网页。 Web组件提供了丰富的组件生命周期回调接口&#xff0c;通过这些回调接口&#xff0c;开发者可以感知Web组件的生命周期状态变化&#xff0c;进行相关的业务处理。 Web组件的状态主要包括&#xff1a;Controller绑定到Web组…

【vue3】for循环多选框勾选必填校验

业务场景&#xff1a; 多选项必选一个&#xff0c;选了的输入框必填 <el-row :gutter"20"><el-col :span"12"><el-form-item label"捆绑终端硬件标识" prop"terminalCodeList"><el-checkbox-groupv-model"…

rmmod无法卸载驱动程序

出现问题&#xff1a; 在加载好驱动程序key_to_led_drv.ko 运行app然后使用ctrlz退出的时候&#xff0c;无法使用rmmod卸载程序 出现问题&#xff1a; 原因进程没有被杀死&#xff1a; 调试过程&#xff1a; 使用lsmod里的信息&#xff1a; used为驱动占用的计数值 当计数…

Java+ffmpeg 合并两个mp4文件

使用ffmpeg测试命令 ffmpeg -i "E:\Monitor\video_20240617_10.mp4" -i "E:\Monitor\video1_20240617_10.mp4" -filter_complex "[0:v][0:a][1:v][1:a]concatn2:v1:a1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a…

数据分析第十一讲:pandas应用入门(六)

pandas应用入门&#xff08;六&#xff09; 我们再来看看Index类型&#xff0c;它为Series和DataFrame对象提供了索引服务&#xff0c;有了索引我们就可以排序数据&#xff08;sort_index方法&#xff09;、对齐数据&#xff08;在运算和合并数据时非常重要&#xff09;并实现…

2024.6.16 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、匹配问题 5、SuperGlue架构 5.1、注意力图神经网络&#xff08;Attentional Graph Neural Network&#xff09; 5.2、最佳匹配层&#xff08;Optimal matching layer&#xff09; 5.3、损失 6、实验 6.…

裂变客户时代:如何打造口碑传播的良性循环?【以Notion为例】

在当今的商业环境中&#xff0c;客户裂变已经成为品牌增长的重要驱动力。裂变客户时代&#xff0c;意味着每一个满意的客户都有可能成为品牌的传播者&#xff0c;帮助品牌吸引更多的新客户。那么&#xff0c;如何在这个时代打造口碑传播的良性循环呢&#xff1f;Notion是怎么做…

Python 接口自动化测试

一、基础准备 1. 环境搭建 工欲善其事必先利其器&#xff0c;废话不多说。我们先开始搭建环境。 # 创建项目目录mkdir InterfaceTesting# 切换到项目目录下cd InterfaceTesting# 安装虚拟环境创建工具pip install virtualenv# 创建虚拟环境&#xff0c;env代表虚拟环境的名称&…

微信小程序学习(十):生命周期

1、应用生命周期 生命周期说明onLaunch监听小程序初始化&#xff0c;全局只会执行 1 次onShow监听小程序启动或切前台onHide监听小程序切后台 &#x1f517;应用生命周期官方文档 App({/*** 当小程序初始化完成时&#xff0c;会触发 onLaunch&#xff08;全局只触发一次&…

李宏毅深度学习03——神经网络训练不起来怎么办

视频链接 如果Optimization失败的时候&#xff0c;怎么把梯度下降做的更好&#xff1f; 只考虑这种情况&#xff0c;不考虑overfitting 局部最小值&#xff08;local minima&#xff09;和鞍点&#xff08;saddle point&#xff09; 为什么Optimization会失败&#xff1f; …

用AI帮助设计师提升工作效率?

在创意设计的世界里&#xff0c;效率往往意味着灵感与时间的完美结合。设计师们时常面临各种挑战&#xff0c;如何在保证作品质量的同时&#xff0c;又能提升工作效率&#xff1f;这不仅是设计师们思考的问题&#xff0c;也是AI技术正在积极解决的问题。那么&#xff0c;用AI帮…

Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装

Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装 目录 Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装 一、简单介绍 二、实现原理 三、注意实现 四、简单效果预览 五、案例简单实现步骤 六、关键代码 一、简单介绍 Unit…

Spring系统学习 - FactoryBean和基于XML的自动装配

Factory Bean Spring的FactoryBean是一个特殊的Bean&#xff0c;用于创建其他Bean实例。FactoryBean接口定义了一个工厂Bean&#xff0c;该Bean可以用来生成其他Bean的实例。通过实现FactoryBean接口&#xff0c;开发人员可以自定义Bean的创建逻辑&#xff0c;实现更灵活的Bea…

动态竞拍与寄售模式:引领企业增长的新引擎

在当今日新月异的商业环境中&#xff0c;企业的生存与发展不仅需要卓越的产品和服务&#xff0c;更需要紧跟市场脉搏&#xff0c;勇于创新。接下来&#xff0c;我将为您详细介绍一种引领行业新风尚的商业模式——动态竞拍与寄售相结合的模式。这一模式凭借其灵活性和创新性&…