22 相交链表
给你两个单链表的头节点headA和headB请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点返回null。图示两个链表在节点c1开始相交题目数据保证整个链式结构中不存在环。注意函数返回结果后链表必须保持其原始结构。自定义评测评测系统的输入如下你设计的程序不适用此输入intersectVal- 相交的起始节点的值。如果不存在相交节点这一值为0listA- 第一个链表listB- 第二个链表skipA- 在listA中从头节点开始跳到交叉节点的节点数skipB- 在listB中从头节点开始跳到交叉节点的节点数评测系统将根据这些输入创建链式数据结构并将两个头节点headA和headB传递给你的程序。如果程序能够正确返回相交节点那么你的解决方案将被视作正确答案。示例 1输入intersectVal 8, listA [4,1,8,4,5], listB [5,6,1,8,4,5], skipA 2, skipB 3输出Intersected at 8解释相交节点的值为 8 注意如果两个链表相交则不能为 0。 从各自的表头开始算起链表 A 为 [4,1,8,4,5]链表 B 为 [5,6,1,8,4,5]。 在 A 中相交节点前有 2 个节点在 B 中相交节点前有 3 个节点。 — 请注意相交节点的值不为 1因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说它们在内存中指向两个不同的位置而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点B 中第四个节点) 在内存中指向相同的位置。示例 2输入intersectVal 2, listA [1,9,1,2,4], listB [3,2,4], skipA 3, skipB 1输出Intersected at 2解释相交节点的值为 2 注意如果两个链表相交则不能为 0。 从各自的表头开始算起链表 A 为 [1,9,1,2,4]链表 B 为 [3,2,4]。 在 A 中相交节点前有 3 个节点在 B 中相交节点前有 1 个节点。示例 3输入intersectVal 0, listA [2,6,4], listB [1,5], skipA 3, skipB 2输出No intersection解释从各自的表头开始算起链表 A 为 [2,6,4]链表 B 为 [1,5]。 由于这两个链表不相交所以 intersectVal 必须为 0而 skipA 和 skipB 可以是任意值。 这两个链表不相交因此返回 null 。提示listA中节点数目为mlistB中节点数目为n1 m, n 3 * 1041 Node.val 1050 skipA m0 skipB n如果listA和listB没有交点intersectVal为0如果listA和listB有交点intersectVal listA[skipA] listB[skipB]进阶你能否设计一个时间复杂度O(m n)、仅用O(1)内存的解决方案1、哈希查找ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(!headA||!headB) return NULL; unordered_setListNode * hash; ListNode * tempAheadA; while(tempA){ hash.insert(tempA); tempAtempA-next; } ListNode * tempBheadB; while(tempB){ auto ithash.find(tempB); if(it!hash.end()) return *it; tempBtempB-next; } return NULL; }2、链表相交特性1、两个链表相交的时候两个链表同时循环往前走当两个pMove指针相等时就是第一个相交的Node节点。假如两个链表的长度不一样时A到了尾节点了下一个节点指向B的头节点。B循环到尾节点了指向A的头节点。循环直到第一次两个pMove节点相等时返回节点的指针。2、如何快速的知道两个链表是否相交呢两个链表相交时其最后的一个节点肯定是相等的。如果两个链表的尾节点都不相等的话两个链表没有相交的地方。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(!headA||!headB) return NULL; ListNode* pMoveAheadA; ListNode* pMoveBheadB; while(1){ if(pMoveApMoveB) return pMoveA; if(pMoveA-next) pMoveApMoveA-next; if(pMoveB-next) pMoveBpMoveB-next; if(!pMoveB-next!pMoveA-next) break; } if(pMoveB!pMoveA) return NULL; pMoveAheadA; pMoveBheadB; while(1){ if(pMoveApMoveB) return pMoveA; if(pMoveA-next) pMoveApMoveA-next; else pMoveAheadB; if(pMoveB-next) pMoveBpMoveB-next; else pMoveBheadA; } return NULL; } };推荐一个零声教育学习教程个人觉得老师讲得不错分享给大家[LinuxNginxZeroMQMySQLRedisfastdfsMongoDBZK流媒体CDNP2PK8SDockerTCP/IP协程DPDK等技术内容点击立即学习:链接

相关新闻

车载测试_智能汽车行业全景教程

车载测试_智能汽车行业全景教程

模块1 智能汽车行业全景教程(从入门到精通)通俗话一句话:先搞懂"智能汽车到底是什么玩意儿、怎么发展起来的、一辆车从立项到交付中间有哪些人在干活",后面学测试才能知道自己在测什么、为什么要测。第1章 智能汽车行…

2026/8/16 1:53:23 阅读更多 →
大模型应用数据缓存复用:从精确匹配到智能融合的工程实践

大模型应用数据缓存复用:从精确匹配到智能融合的工程实践

1. 项目背景与核心价值:为什么大模型应用需要数据缓存复用?如果你正在开发或维护一个基于大模型(LLM)的应用,无论是智能客服、内容生成还是数据分析,一个绕不开的痛点就是API调用成本。无论是按Token计费的…

2026/8/16 1:52:23 阅读更多 →
Vivado报错排查指南:从综合到比特流生成的实战解决方案

Vivado报错排查指南:从综合到比特流生成的实战解决方案

1. Vivado报错:FPGA开发者的“必修课” 干了这么多年FPGA,从ISE时代一路用到Vivado,我最大的感受就是:报错是常态,不报错才是意外。尤其是Vivado,功能强大归强大,但那个报错信息有时候真是让人摸…

2026/8/16 1:52:23 阅读更多 →

最新新闻

LeetCode AI助手:苏格拉底式引导与面试模拟提升算法思维

LeetCode AI助手:苏格拉底式引导与面试模拟提升算法思维

这次我们来看一个专门为 LeetCode 刷题和面试准备设计的浏览器扩展工具。它不是一个需要本地部署的 AI 模型,而是一个直接集成在浏览器侧边栏的智能助手。核心功能非常直接:在你刷 LeetCode 时,它能在旁边提供苏格拉底式的引导提示&#xff0…

2026/8/16 3:58:09 阅读更多 →
云原生AI助手深度对比:AWS Q、Azure Copilot与国内CloudQ如何选型

云原生AI助手深度对比:AWS Q、Azure Copilot与国内CloudQ如何选型

1. 从“云原生AI助手”的混战说起:我们到底需要什么?最近几个月,云服务商在AI领域的动作密集得让人眼花缭乱。先是AWS在re:Invent大会上正式推出AWS Q,紧接着微软的Azure AI Studio和Azure Copilot也动作频频,而国内各…

2026/8/16 3:57:09 阅读更多 →
OpenClaw与Deepgram构建自动化语音转录工作流实战

OpenClaw与Deepgram构建自动化语音转录工作流实战

1. 项目概述:当笔记工具遇上语音智能最近在折腾一个挺有意思的自动化流程:把语音笔记自动转录成文字。核心工具是 OpenClaw 和 Deepgram。OpenClaw 你可能听说过,它是一个开源的、功能强大的自动化工作流平台,可以连接各种应用和服…

2026/8/16 3:57:09 阅读更多 →
Python list()与map()深度解析:从基础到高阶的性能优化与实战应用

Python list()与map()深度解析:从基础到高阶的性能优化与实战应用

1. 项目概述:从“会用”到“精通”的必经之路在Python的日常开发中,list()和map()这两个函数,就像工具箱里的螺丝刀和扳手,看似基础,但用得好与用得巧,直接决定了代码的效率与优雅程度。很多初学者&#xf…

2026/8/16 3:57:09 阅读更多 →
检测机构查询小程序众多,哪家才是你的最优之选?

检测机构查询小程序众多,哪家才是你的最优之选?

检测机构查询小程序推荐榜单 在当今工业自动化快速发展的时代,无论是 PLC控制器、伺服驱动 等设备的生产企业,还是从事 智能制造、工业物联网 相关业务的公司,都经常需要查询检测机构的信息。我在电子电气领域摸爬滚打多年,接触过…

2026/8/16 3:56:09 阅读更多 →
一家工程机械厂的AI获客30天实录:从零召回到18次被提到

一家工程机械厂的AI获客30天实录:从零召回到18次被提到

株洲有一家做工程机械零部件外协的工厂,设备投了百来万,干的活不差,客户也稳定。但有个事一直让老板心里不踏实——新客户越来越难找了。项目启动前,团队先做了一次摸底:在四个主流AI工具里,用采购方真实会…

2026/8/16 3:56:09 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →