LeetCode - 160. 相交链表(C语言,配图)

思路:

        1. 我们算出两个链表的长度lenA,lenB。我们在这里最后判断一下,两个链表的尾节点是否是一样的,如果是相交链表,那它们的尾节点一定是一样的。

        2. 算出长链表和短链表的差距n(n = | lenA- lenB |)

        3. 让较长的那个链表往后走n步

        4. 短链表的指针 和 长链表的指针处于相同的位置,同时往后走,找到第一个相同的节点。

代码:

        

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    struct ListNode* curA = headA;
    struct ListNode* curB = headB;
    int lenA =0;
    int lenB =0;
    //两个链表的长度
    while(curA)
    {
        lenA++;
        curA = curA->next;
    }
    while(curB)
    {
        lenB++;
        curB = curB->next;
    }
    //如果是相交链表,尾节点一定是同一个
    if(curA != curB)
    {
        return NULL;
    }

    //利用假设法得出长链表和短链表
    struct ListNode* longlist = headA;
    struct ListNode* shortlist = headB ;
    if(lenA < lenB)
    {
        longlist = headB;
        shortlist = headA;
    }
    
    //长链表的长度 - 短链表的长度
    int n = abs(lenA - lenB);
    while(n--)
    {
        longlist=longlist->next;
    } 

    //找出第一个相同的节点
    while(longlist != shortlist)
    {
        longlist = longlist->next;
        shortlist = shortlist->next;
    }
    return shortlist;
}

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

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

相关文章

年产200万件的超级工厂投产!巨头「闭环」汽车电子全产业链

随着汽车电动化程度的提升&#xff0c;汽车电子部件占整车成本比重逐步升高&#xff0c;已经从2012年的25%上升到2021年的55%。 且汽车电子电气架构向整车集中演进&#xff0c;智能汽车已经进入了软件及数据定义时代&#xff0c;底层硬件打破了过去几十年围绕特定应用不断增加…

MySQL5.7和MySQL8对比分析

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; MySQL学习 ✨特色专栏&#xff1a; My…

使用CycleGAN训练自己的数据集

一、下载源码 源码下载链接&#xff1a;https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 二、调整自己的数据集格式 按照如下格式放 三、安装好所需要的python包 使用命令&#xff1a;pip install 包名称 在anaconda里面安装&#xff0c; 四、训练和测试 在开始训…

【算法】最短路径——弗洛伊德 (Floyd) 算法

目录 1.概述2.代码实现3.扩展3.应用 1.概述 &#xff08;1&#xff09;弗洛伊德 (Floyd) 算法又称为插点法&#xff0c;是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法&#xff0c;与 Dijkstra 算法类似。该算法名称以创始人之一、1978 年图灵奖获得者、…

应用在智能照明系统中的LED防蓝光灯珠

智能照明系统是利用电磁调压及电子感应技术&#xff0c;对供电进行实时监控与跟踪&#xff0c;自动平滑地调节电路的电压和电流幅度&#xff0c;改善照明电路中不平衡负荷所带来的额外功耗&#xff0c;提高功率因数&#xff0c;降低灯具和线路的工作温度&#xff0c;达到优化供…

到手价的低价监测怎么做到

品牌在做数据监测时&#xff0c;要考虑是否是到手价的监测&#xff0c;如果只是监测页面价的低价&#xff0c;真实情况是会漏掉很多的低价数据&#xff0c;如果是做经销商的低价监测工作&#xff0c;这样的监测方式下的数据会降低品牌对渠道的掌控力&#xff0c;因为监测的不是…

PPP协议_基础知识

ppp协议 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。 一.ppp协议的组成 PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法&#xff0c;主要由以下三部分构成: 对各种协议数据报的封装方法(封装成帧)链路控制协议LCP    …

揭秘2023年最热门的跨境电商源码趋势,你不能错过的关键信息

随着全球市场的不断扩大和国际贸易的加速&#xff0c;跨境电商源码正成为越来越多企业的首选。在本文中&#xff0c;我们将揭秘2023年跨境电商源码的最新趋势&#xff0c;为您带来关键信息&#xff0c;帮助您抓住机遇&#xff0c;实现商业成功。 2023年跨境电商源码趋势解析 …

JS-项目实战-鼠标悬浮设置字体颜色以及控制键盘输入

1、fruit.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格的所有的行&a…

Go 使用Viper处理Go应用程序的配置

在开发Go应用程序时&#xff0c;处理配置是一个常见的需求。配置可能来自于配置文件、环境变量、命令行参数等等。Viper是一个强大的库&#xff0c;可以帮助我们处理这些配置。 什么是Viper&#xff1f; Viper是一个应用程序配置解决方案&#xff0c;用于Go应用程序。它支持JS…

推介会如何做好媒体宣传

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 推介会是一种专为企业、社会组织和团体、政府等提供的展示自身特点、产品和政策的活动形式&#xff0c;旨在促进交流活动&#xff0c;形成合作&#xff0c;从而带来共同利益。推介会的本…

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

目录 一、cenc-aes-ctr 原理介绍 二、显式 cenc-aes-ctr 和隐式 cenc-aes-ctr 三、加密工具---ffmpeg 四、播放---ffplay 五、总结 ​​​​​​​一、cenc-aes-ctr 原理介绍 加密算法&#xff1a;CENC-AES-CTR 使用 AES&#xff08;Advanced Encryption Standard&…

微服务架构学习与思考

参考&#xff1a;微服务架构学习与思考(01)&#xff1a;什么是微服务&#xff1f;微服务的优势和劣势 - 九卷 - 博客园 (cnblogs.com) 一、单体应用 在软件开发早期阶段&#xff0c;大家都在一个应用系统上开发。各个业务模块之间耦合也比较紧密。软件发布也是整体发布&#…

实验室LIMS系统 asp.net源码 lims系统源码

LIMS系统是以实验室为中心&#xff0c;将人员、仪器、试剂、方法、环境、文件等影响分析数据的因素有机结合&#xff0c;针对实验室的要求&#xff0c;遵循ISO 17025准则&#xff0c;采用先进的计算机网络技术、数据存储技术、快速和强大的数据处理技术来对实验室进行全面管理的…

【备忘】websocket学习之挖坑埋自己

背景故事 以前没有好好学习过websocket&#xff0c;只知道它有什么用途&#xff0c;也知道是个好东西&#xff0c;平时在工作中没用过&#xff0c;所以对它并不知所以然。如今要做个自己的项目&#xff0c;要在付款的时候实时播报声音。自己是个开发者&#xff0c;也不想用别人…

【XTDrone Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装

XTDrone仿真平台配置 文章目录 XTDrone仿真平台配置依赖安装 ROS一键安装Marvos安装PX4 安装安装QTGroundControlXTDrone下载安装 环境&#xff1a; VMWare 16.0 Ubuntu 22.04 &#xff08;因为没人配过&#xff09;Ubuntu 20.04 参考文章&#xff1a; 仿真平台基础配置 (yuq…

还有医学生不知道这个免费好用的在线样本量计算器吗?

相信很多小伙伴都有过这样的经历&#xff1a;做科研设计、撰写论文&#xff0c;设计好主题后摆在眼前的是你最头痛的问题——样本量计算。事实上&#xff0c;样本量计算往往是临床医生做临床研究设计的一大障碍&#xff0c;是临床研究设计、临床知识经验以及统计学知识的结合。…

adguarg通过dns代理全局过滤广告,全系统操作指南

路由器dns配置 安卓(鸿蒙) 设置>>其他网络与连接>>私人DNS&#xff08;不同手机系统设置名称会有些许出入&#xff0c;但是大差不差&#xff09; &#xff08;左图鸿蒙&#xff09;&#xff1a;将域名m.centos.chat填入手机私人DNS IOS系统 将代理服务器IP&am…

React-Router源码分析-History库

history源码 history 在 v5 之前使用单独的包&#xff0c; v6 之后再 router 包中单独实现。 history源码 Action 路由切换的动作类型&#xff0c;包含三种类型&#xff1a; POPREPLACEPUSH Action 枚举&#xff1a; export enum Action {Pop "POP",Push &quo…

核心容器中bean的操作

bean配置 bean基础配置 bean别名配置 **注意事项&#xff1a;**获取bean无论是通过id还是name获取&#xff0c;如果无法获取到&#xff0c;将抛出异常NoSuchBeanDefinitionException&#xff08;NoSuchBeanDefinitionException&#xff1a;No bean named ‘bookServiceImpl’ …