JAVA练习290- 相交链表
📅 2026/7/16 8:13:39
👁️ 次浏览
题目概览给你两个单链表的头节点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 * 10^41 Node.val 10^50 skipA m0 skipB n如果listA和listB没有交点intersectVal为0如果listA和listB有交点intersectVal listA[skipA] listB[skipB]进阶你能否设计一个时间复杂度O(m n)、仅用O(1)内存的解决方案来源160. 相交链表 - 力扣LeetCode解题分析方法一哈希集合定义一个哈希集合存储 ListA 的所有节点然后遍历 ListB 判断是否有节点在集合中即可。时间复杂度O(mn)空间复杂度O(m)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val x; * next null; * } * } */ public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { SetListNode set new HashSet(); ListNode temp headA; while(temp ! null) { set.add(temp); temp temp.next; } temp headB; while(temp ! null) { if (set.contains(temp)) { return temp; } temp temp.next; } return null; } }方法二双指针如果两个链表是等长的那么两个链表遍历到相交节点的次数一定是一样的因此我们只需要两个链表一起遍历作比较即可。如果两个链表不是等长的按照上面的思路我们可以给短的那个链表前面补上空节点直到两个链表长度相等就可以一起遍历找到相交节点了。但是由于链表长度是未知的我们可以换个方式把 ListA 拼接到 ListB 前面ListB 拼接到 ListA 前面这样两个链表的长度就都是 mn 了。我们可以用双指针来代替拼接i 遍历 ListAj 遍历 ListB当 ListA 遍历完后 i 再遍历 ListBListB 遍历完后 j 再遍历 ListA。时间复杂度O(mn)空间复杂度O(1)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val x; * next null; * } * } */ public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode a headA, b headB; while(true) { if (a b) { return a; } a a null ? headB : a.next; b b null ? headA : b.next; } } }
1. 技术架构中的冰山隐喻 第一次听到"冰山理论"是在心理学课堂上,当时只觉得是个有趣的比喻。直到五年前处理一次电商大促期间的系统崩溃事故,我才突然意识到这个理论在技术领域同样适用。那天凌晨三点,订单服务突然响应超时&#…
📅 2026/7/16 8:12:39
1. 项目概述:从一道经典算法题看C的优雅实现最近在带新人学习C,发现很多朋友在接触算法题时,往往只追求“能跑通”,却忽略了代码的健壮性、可读性和性能优化。今天我就拿一个看似简单却内涵丰富的题目——“3n1猜想”(…
📅 2026/7/16 8:12:39
1. 项目概述:为什么Selenium是爬虫工程师的“瑞士军刀”?如果你正在学习Python爬虫,大概率已经听过Requests、BeautifulSoup甚至Scrapy这些名字。它们能帮你抓取静态网页数据,速度快、效率高。但当你兴致勃勃地打开一个目标网站&a…
📅 2026/7/16 8:12:39
从人工点钻到AI视觉引导,服装装饰自动化的技术栈正在重构近年来,随着快时尚与个性化消费需求的快速增长,服装装饰工艺中的“点钻”环节正经历着从人工到智能化的深刻变革。消费者对钻石、水晶、珠片等饰品的精准排列、牢固度与视觉效果提出了…
📅 2026/7/16 15:51:08
随着现代农业规范化、标准化发展,大豆、玉米、水稻等主粮农产品的转基因成分检测,已然成为种子筛选、田间种植管控、农产品品质核验的关键环节。传统转基因检测设备操作繁琐、检测周期长、场地受限,难以适配田间快速筛查、批量种子抽检等刚需…
📅 2026/7/16 15:51:08
BiliTools:跨平台B站资源下载工具完整指南 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools
你是否经常在B站发现精彩视频却苦于无法离线保存?想要收藏喜欢的UP主作品却受限于网络…
📅 2026/7/16 15:51:08
CRT-Royale-Reshade:为现代游戏注入复古灵魂的终极CRT模拟器 【免费下载链接】crt-royale-reshade A port of crt-royale from libretro to ReShade 项目地址: https://gitcode.com/gh_mirrors/cr/crt-royale-reshade
还在为现代游戏过于清晰锐利的画面而烦恼…
📅 2026/7/16 15:51:08
RudenessScreenHelper API详解:掌握activate()与inactivate()的正确用法 【免费下载链接】Rudeness 一种粗暴快速的Android全屏幕适配方案 项目地址: https://gitcode.com/gh_mirrors/ru/Rudeness
Rudeness是一种粗暴快速的Android全屏幕适配方案,…
📅 2026/7/16 15:51:08
更多请点击:
https://kaifayun.com
第一章:Canva AI 视频编辑正在淘汰传统剪辑师?一线团队紧急启动的3套替代方案(含迁移 checklist 与风险评估表)
当Canva Video AI在5分钟内完成分镜生成、语音同步、自动字幕与品牌…
📅 2026/7/16 15:50:08
1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…
📅 2026/7/16 0:00:02
前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…
📅 2026/7/16 0:00:02
1. 项目概述与核心价值 在高速数字系统、通信设备乃至精密测量仪器中,一个稳定、纯净且可精确调控的时钟信号,往往是整个系统稳定运行的“心跳”。无论是确保数据在光纤中无误传输,还是让ADC/DAC芯片精准采样,亦或是让多块FPGA板卡…
📅 2026/7/16 0:00:02
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/15 22:51:06
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/15 19:03:10
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/15 22:46:06
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/15 22:51:03