008、相交链表

0、题目描述

相交链表
在这里插入图片描述

1、法1

嵌套循环,从listA的第一个节点开始与listB的每个节点比对,有相同的就返回这个节点。
时间复杂度是n^2

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{struct ListNode* pa = headA;struct ListNode* pb = headB;while (pa){pb = headB;while (pb){if (pa == pb){return pa;}pb = pb->next;}pa = pa->next;}return NULL;
}

2、法2

不用循环的方式找交点,如果双指针一起走的话,listA和listB的长度不同,容易错过交点位置。
所以先求listA和listB的长度,然后对齐一下,再双指针一起走就可以了。
如果有交点,尾节点一定是一样的,让长链表的指针先走一会儿,再齐头并进,就能找到交点。在这里插入图片描述
如图,让listB的指针先走1下,就可以齐头并进了。lenB - lenA = 1

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{int lenA = 1;   int lenB = 1;struct ListNode* curA = headA;    struct ListNode* curB = headB;while (curA->next){curA = curA->next;lenA++;}while (curB->next){curB = curB->next;lenB++;}if (curA != curB)return NULL;else{//注意这里的条件LenA > lenB必须一样,在一样的条件下做出不一样的选择。struct ListNode* LongList = lenA > lenB ? headA : headB;struct ListNode* ShortList = lenA > lenB ? headB : headA;//abs是求绝对值的宏,这里的gap代表长度差int gap = abs(lenA - lenB);while (gap--){LongList = LongList->next;}//while (LongList->next){if (LongList == ShortList)break;LongList = LongList->next;ShortList = ShortList->next;}return LongList;}
}

在这里插入图片描述

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

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

相关文章

多媒体(1)

多媒体 多媒体的信息结构是【非线性的网状结构】 多媒体技术的基本特征:集成性、交互性、实时性、数字化、多样性 多媒体数据具有【数据量大】、【数据类型多】、【数据类型间区别小】、【输入输 出复杂】的特点 在多媒体数据库中,基于内容检索的关键技术…

智联云采 SRM2.0 testService SQL注入漏洞复现

0x01 产品简介 智联云采是一款针对企业供应链管理难题及智能化转型升级需求而设计的解决方案,针对企业供应链管理难题,及智能化转型升级需求,智联云采依托人工智能、物联网、大数据、云等技术,通过软硬件系统化方案,帮助企业实现供应商关系管理和采购线上化、移动化、智能…

【AI绘画】Midjourney进阶:引导线构图详解

博客主页: [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯什么是构图为什么Midjourney要使用构图 💯引导线构图特点使用场景提示词书写技巧测试 💯小结 💯前言 【AI绘画】Midjourney进阶&a…

嵌入式职业规划

嵌入式职业规划 在嵌入式的软件开发中,可以分为: 嵌入式MCU软件开发工程师; 嵌入式Linux底层(BSP)软件开发工程师; 嵌入式Linux应用开发工程师; 嵌入式FPGA算法开发工程师 对于前两个阶段 …

【时间之外】IT人求职和创业应知【9】

目录 1. 云计算ETF领涨,中证云计算与大数据主题指数估值较低 2. 南向资金持有海螺创业市值减少,但仍保持高比例持股 3. 深创赛澳大利亚分站赛落幕,龙岗区与3个意向落地项目签约 认知决定你的赚钱能力。以下是今天可能影响你求职和创业的热点新闻: 今日关键字:数字战争…

ChatGPT官方自带的测试页面 Playground

Playground页面相当于是网页端的大模型调用应用,可以在这里直接选择不同类型模型、选择不同的参数、输入不同的提示测试模型输出结果,并且这个页面还可以查看网页端操作对应的代码,整体操作流程非常便捷,也非常适合初学者进行零代…

UE5 猎户座漂浮小岛 02 模型 地形

UE5 猎户座漂浮小岛 02 模型 地形 1.模型 1.1 导入 1.2 统一模型比例 1.3 添加碰撞体 2.地形 2.1 地 2.2 山体 2.3 海洋 2.4 花草

关于武汉芯景科技有限公司的限流开关芯片XJ6288开发指南(兼容SY6288)

一、芯片引脚介绍 1.芯片引脚 二、系统结构图 三、功能描述 1.EN引脚控制IN和OUT引脚的通断 2.OCB引脚指示状态 3.过流自动断开

Java基于SSM框架的教学辅助微信小程序【附源码、文档】

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

构建后端为etcd的CoreDNS的容器集群(六)、编写自动维护域名记录的代码脚本

本文为系列测试文章,拟基于自签名证书认证的etcd容器来构建coredns域名解析系统。 一、前置文章 构建后端为etcd的CoreDNS的容器集群(一)、生成自签名证书 构建后端为etcd的CoreDNS的容器集群(二)、下载最新的etcd容…

hdfs的客户端(big data tools插件)

1.下载hadoop的压缩包在Windows,后解压 2.下载hadoop.dll文件和winutil.exe文件(网上自行查找) 下载完把这两个文件放入hadoop的bin目录 3.设置环境变量: $HADOOP_HOME指向hadoop的文件夹 4.在jetbrains公司的软件里下载big data tools插件:(在此展示的idea的) 下载完重启ide…

1.ubuntu下安装noetic

1.首先安装常规手段安装乌班图系统 2.开始ROS 系统安装 1. 设置编码 $ sudo apt update && sudo apt install locales $ sudo locale-gen en_US en_US.UTF-8 $ sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 $ export LANGen_US.UTF-82.添加源 $ sudo ap…

OpenMediaVault安装插件以及重置web控制台密码

常用插件(可根据实际情况选择安装) openmediavault-flashmemory:加载临时文件到内存,保护硬盘;openmediavault-fail2ban :扫描日志文件并禁止显示恶意迹象的IP-太多的密码错误,寻找漏洞等&…

【YOLOv11】制作使用YOLOv11的docker环境

目录 一 安装docker 1 安装依赖 2 添加docker官网 GPG 密钥、设置stable 仓库 3 安装 4 使用 二 环境制作 ① 拉基础镜像 ② 起容器 ③ 安装Anaconda3 ④ 安装YOLO11 ⑤ /root/.bashrc ⑥ 退出容器 ⑦ 保存镜像 ⑧ 镜像的使用 一 安装docker ubuntu:20.04 1 安装…

C语言复习第4章 数组

目录 一、一维数组的创建和初始化1.1数组的创建1.2 变长数组1.3 数组的初始化1.4 全局数组默认初始化为01.5 区分两种字符数组1.6 用sizeof计算数组元素个数1.7 如何访问数组元素1.8 一维数组在内存中的存储(连续存储)1.9 访问数组元素的另一种方式:指针变量1.10 数组越界是运行…

手机淘宝自动下单退货自动化RPA脚本机器人

使用手机集线器连接多个手机并发运行。 脚本分3个部分(读取本地连接下单,退货获取退货地址信息,填写快递单号) 脚本部分图结构看下面的图片 部分数据统计展示

MATLAB支持的字体

listfonts 列出可用的系统字体 {Adobe Devanagari } {Agency FB } {Algerian } {AlienCaret } {AMS } {Arial } {Arial Black …

linux模拟:chrony同步时间

实验材料: 服务器:linux,红帽-9.1 客户端:linux,乌班图-18.4 Server/client; 安装chrony yum install -y chrony 查看chrony的状态: systemctl status chronyd 服务器: 在/etc/chrony.conf文件里面…

Llama3-Factory模型部署新手指南

一、介绍 为了保持其公司在人工智能开源大模型领域的地位,社交巨头Meta推出了旗下最新开源模型。当地时间4月18日,Meta在官网上宣布公布了旗下最新大模型Llama 3。目前,Llama 3已经开放了80亿(8B)和700亿(…

【哈工大_操作系统理论】L2425 内存换入-请求调页内存换出

L3.5 内存换入-请求调页 采用 换入-换出 实现虚拟内存 1、请求调页 程序运行时物理内存缺页 -> 中断处理程序:请求调页(从磁盘换入),换入后回到中断位置继续执行程序实现:虚拟内存大小永远为4G,而物理…