手撕C语言题典——相交链表

目录

前言

 一,思路

1)暴力

2)同步指针

二,代码实现


前言

   依旧是力扣上的一道题,有许多新思路提供给我们

160. 相交链表 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/intersection-of-two-linked-lists/

      我们先来分析题干,相交链表这个相交值得我们去思考一下,我们平常惯性思维的相交都是X型的,要注意单链表的相交并不是简单的X型相交,而是如图所示的Y字型相交,因为我们知道单链表的节点里存储数据和 next 指针,当两个链表的某一个节点的next指针都指向同一个节点时,两链表相交,但无论如何一个节点只能存储一个next指针,所以交汇之后只能形成Y字型的相交。

    题目要求大致总结以下两点:

  1. 判断是否相交
  2. 若相交,找出第一个交点

 一,思路

     我们之前做过的一道题讲了一个链表很好用的思路叫逆置,但在这道题中,假设我们逆置来做,则无法使c1节点有俩next指针,所以这个方法哒咩

     对于第一个要求,我们可以判断尾指针,注意用地址判断

1)暴力

     给两个指针将两个链表的节点都比较一遍,找出相同的节点的即为所求     

     但时间复杂度会高很多O(N^2)

2)同步指针

     先找出两个链表同时的节点,例如找出短链表的头节点对应的长链表的节点 a1和b2,两个指针从这开始遍历无需一一比对节点是否相同

二,代码实现

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode *curA = headA, *curB = headB;int lenA = 1, lenB = 1;while(curA->next){curA = curA->next;++lenA;}while(curB->next){curB = curB->next;++lenB;}//尾节点不相等就是不相交if(curA !=  curB){return NULL;}//长节点先走差距步,再同时走,第一个像等的就是交点//假设法int gap = abs(lenA - lenB);struct ListNode *longList = headA, *shortList = headB;if(lenB > lenA){longList = headB;shortList = headA;}while(gap--){longList = longList->next;}while(longList != shortList){longList = longList->next;shortList = shortList->next;}return shortList;
}

 因为无需一一比对,所以空间复杂度为O(N)

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

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

相关文章

Message passing mechanism (消息传递机制)

objc_msgSend 是 Objective-C 运行时系统中的一个核心函数,用于实现消息传递机制。在 Objective-C 中,方法调用实际上是消息传递的过程,当你在代码中调用一个方法时,编译器会将其转换为 objc_msgSend 函数的调用。 objc_msgSend …

构建体育直播平台源码:深度解析数据分析模块的核心展示内容

在现代的体育直播平台中,数据分析展示已经成为不可或缺的一部分。如下参考借助“东莞梦幻网络科技”提供的体育直播源码,打造的平台,并通过表格形式为用户列出以下数据分析内容: 1、积分排名:反映了各支队伍在赛季中的…

做跨境电商一定要测评吗?

不管是做亚马逊还是虾皮、Lazada、ebay、沃尔玛、Ozon、Allegro、敦煌网、Jumia、Falabella、SHEIN、OnBuy、新蛋、Fnac、eMAG、ManoMano、Fruugo、速卖通、阿里国际、煤炉等跨境电商平台,测评都是成本最低且最有效的一种推广方式 并不是说做电商就一定要去测评&am…

护肤品成分大公开

在追求美丽的道路上,护肤品无疑是我们手中的重要武器。而在这众多护肤品中,胶原蛋白这一成分因其独特的功效和作用,受到了广泛的关注和喜爱。今天,就让我们一起走进胶原蛋白的世界,揭开它的神秘面纱。 一、胶原蛋白是什…

React实现在线预览word报告/本地选择报告预览

标题使用的核心技术点是docx-preview,读取到文件的File对象,用File去做文件展示,这里是才用将文件转base64字符串存储到localStorage中 在线预览word报告且包含word样式 下载需要使用的min.js文件进项目的public目录中(上zip已包…

shell 终端打印格式化日志 log::info

代码 logging.sh #!/bin/bash NC\033[0m RED\033[31m GREEN\033[32m YELLOW\033[33m BLUE\033[34mlog::err() {printf "[$(date %Y-%m-%dT%H:%M:%S.%2N%z)][${RED}ERROR${NC}] %b\n" "$" }log::info() {printf "[${GREEN}$(date %Y-%m-%dT%H:%M:%S.%…

VB.net实战(VSTO):Excel插件的安装与卸载

1. 安装 1.1编程环境:Visual Studio 2022 1.2创建新项目: 1.3 加入一行测试程序:MsgBox(“hello”),点击启动,确认可以弹窗 1.4 点击发布 1.5 找到安装程序,点击安装。打开Excel程…

微信短视频怎么收藏?成都鼎茂宏升文化传媒公司

微信短视频怎么收藏?一文教你轻松掌握 随着微信功能的不断升级,微信短视频已经成为我们日常生活中不可或缺的一部分。无论是朋友分享的生活点滴,还是公众号推送的精彩内容,短视频都以其直观、生动的形式,吸引着我们的…

乡村振兴与脱贫攻坚相结合:巩固拓展脱贫攻坚成果,推动乡村全面振兴,建设更加美好的乡村生活

目录 一、引言 二、巩固拓展脱贫攻坚成果 1、精准施策,确保稳定脱贫 2、强化政策支持,巩固脱贫成果 3、激发内生动力,促进持续发展 三、推动乡村全面振兴 1、加快产业发展,增强乡村经济实力 2、推进乡村治理体系和治理能力…

使用tftpd更新开发板内核

我们升级内核可以通过原厂提供的升级软件来进行,比如瑞芯微的RKDevTool.exe,只不过这种方式必须通过指定的OTG升级口,还得借助按键进入loader模式后才可以。 其实还可以利用一些通用的工具来进行升级,比如tftpd工具。 下载地址p…

C++:栈(stack)、队列(queue)、优先级队列(priority_queue)

hello,各位小伙伴,本篇文章跟大家一起学习《C:栈(stack)和队列(queue)》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 :map…

MPLAB--读写MCU数据

空工程 Read –Programmer\Read –File\Export, –确定后选择文件位置 & 文件名 Program –File\Import…,选择烧录的文件*.hex –Programmer\Program

如何 Logrus IT 的质量评估门户帮助提升在线商店前端(案例研究)

在当今竞争激烈的电子商务环境中,一个运作良好的在线店面对商业成功至关重要。然而,确保目标受众获得积极的用户体验可能是一项挑战,尤其是在使用多种语言和平台时。Logrus IT的质量评估门户是一个强大的工具,可帮助企业简化内容和…

《python开发》cannot allocate memory in static TLS block-报错问题解决

阿丹: 今天在配置跑rasa训练的时候出现问题,找了国内论坛有解决的人,但是说的不明白。查阅了很多论坛之后发现了解决的方案。 https://github.com/keras-team/keras-tuner/issues/317 问题描述以及错误: 关键错误 :c…

做视频号小店什么类目最容易爆单?其实,弄懂这三点就会选品了

大家好,我是电商花花。 我们做视频号小店做什么类目最容易爆单? 其实任何类目都有属于自己的受众人群和客户,都非常容易爆单,我们想要爆单,就要选对类目,选对产品。 视频号上所有的类目基本上可以分为标…

C2prog烧写程序

DSP开发,使用CCS软件建立工程 C2prog 支持C2prog通过串口进行下载,支持out文件。这个下载器下载速度比官方提供的UNIFLASH还要快。 boot跳线设置,不同的DSP拨码方式不相同。制作单板硬件时,通常时将前面三个直接拉到高&#xff…

视频号小店,目前电商界最值得去做的创业项目,一篇解读!

大家好,我是电商小V 要说24年最火的创业性项目那一定是视频号小店,为什么会这样说呢?这主要的还是和他背后的平台有关系,视频号小店是背靠腾讯电商平台的,坐拥的流量可以说是很多的,可以说视频号小店的靠山…

Modbus通信协议2

一、Modbus概述 1.MODBUS通信栈(软件实现方法) 2.MODBUS应用协议 2.1 MODBUS应用协议介绍 Modbus是一种简单客户机/服务器应用协议;客户机能够向服务器发送请求;服务器分析请求,处理请求,向客户机发送应…

金混合纳米粒子催化级联反应产生一氧化碳气体对抗糖尿病牙周炎

引用信息 文 章:Cascade Reactions Catalyzed by Gold Hybrid Nanoparticles Generate CO Gas Against Periodontitis in Diabetes. 期 刊:Advanced Science(影响因子:15.1) 发表时间:2024年…

汽车IVI中控开发入门及进阶(二十四):杰发科技AC8015

前言: 在此之前的大部分时间,四维图新更多的是以图商的身份在业内出现,但现在四维图新图商之外的技术积累提现在了杰发科技身上,或者是从图商到汽车智能化一体解决方案供应商的角色转变。汽车智能化,可以简单的归为座舱智能化和智能驾驶两个板块。 随着汽车变得越来越智能…