JAVA练习300- 随机链表的复制

发布时间:2026/7/18 0:12:02

JAVA练习300- 随机链表的复制
题目概览给你一个长度为n的链表每个节点包含一个额外增加的随机指针random该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。 深拷贝应该正好由n个全新节点组成其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如如果原链表中有X和Y两个节点其中X.random -- Y。那么在复制链表中对应的两个节点x和y同样有x.random -- y。返回复制链表的头节点。用一个由n个节点组成的链表来表示输入/输出中的链表。每个节点用一个[val, random_index]表示val一个表示Node.val的整数。random_index随机指针指向的节点索引范围从0到n-1如果不指向任何节点则为null。你的代码只接受原链表的头节点head作为传入参数。示例 1输入head [[7,null],[13,0],[11,4],[10,2],[1,0]]输出[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2输入head [[1,1],[2,1]]输出[[1,1],[2,1]]示例 3输入head [[3,null],[3,0],[3,null]]输出[[3,null],[3,0],[3,null]]提示0 n 1000-10^4 Node.val 10^4Node.random为null或指向链表中的节点。来源138. 随机链表的复制 - 力扣LeetCode解题分析方法哈希集合先遍历一遍链表复制链表的值和 next 指针然后用哈希集合存储旧节点和复制节点的映射然后再遍历一遍链表复制 random 指针指向那个节点就去哈希集合里面拿即可。时间复杂度O(n)空间复杂度O(n)/* // Definition for a Node. class Node { int val; Node next; Node random; public Node(int val) { this.val val; this.next null; this.random null; } } */ class Solution { public Node copyRandomList(Node head) { if (head null) { return null; } // copy.random copyRandomList(head.random); MapNode, Node map new HashMap(); Node node head, pre new Node(0), res pre; while(node ! null) { Node copy new Node(node.val); map.put(node, copy); pre.next copy; pre copy; node node.next; } node head; while(node ! null) { Node copy map.get(node); copy.random map.get(node.random); node node.next; } return res.next; } }

相关新闻

电子证件照片制作全教程:手机免费操作、微信支付宝流程、标准尺寸底色大全

电子证件照片制作全教程:手机免费操作、微信支付宝流程、标准尺寸底色大全

2026/7/18 0:02:02

2026年各类线上报名、证件办理、入职存档、签证申请等场景,均需要合规的电子证件照。很多人常因尺寸不符、底色错误、画质模糊、文件大小超标导致上传审核失败。本文整理全套手机免费制作方法,涵盖微信、支付宝主流操作流程,明确通用标准尺寸…

揭秘!24小时AI客服领域,究竟哪家才是优秀服务商?

揭秘!24小时AI客服领域,究竟哪家才是优秀服务商?

2026/7/18 0:02:02

在当今数字化时代,24小时AI客服成为众多企业提升服务水平与效率的重要工具,它能为企业实现全天候客户接待,带来更好的客户体验。那么,该领域有哪些优秀服务商呢?行业背景与痛点随着市场对客服服务要求的提升&#xff0…

某智驾大牛创业

某智驾大牛创业

2026/7/18 0:02:02

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

STM32 GPIO配置与LED控制实战指南

STM32 GPIO配置与LED控制实战指南

2026/7/18 1:42:09

1. 项目概述刚接触STM32的新手们,GPIO控制绝对是你们要跨过的第一道门槛。作为最基础的外设接口,GPIO就像单片机的"手脚",通过它我们才能与外部世界进行交互。今天我就以最经典的LED控制为例,带大家彻底搞懂STM32的GPIO…

人形机器人武术表演背后的核心技术:动态平衡与全身运动控制

人形机器人武术表演背后的核心技术:动态平衡与全身运动控制

2026/7/18 1:42:09

1. 项目概述:当人形机器人“舞”起中国功夫最近,一段人形机器人表演中国功夫,为农历新年助兴的视频在网络上引发了不小的关注。作为一名长期关注机器人技术发展的从业者,我第一眼看到这个标题时,内心是既兴奋又带着一丝…

ExpressJS与现代Node.js框架对比:性能与迁移指南

ExpressJS与现代Node.js框架对比:性能与迁移指南

2026/7/18 1:42:09

1. 为什么2021年该重新评估ExpressJS十年前我刚接触Node.js后端开发时,ExpressJS几乎是唯一的选择。就像老工匠手中的瑞士军刀,它用中间件机制和简洁的路由API征服了整个社区。但时至今日,当我看到新项目还在默认选用Express时,总…

Android悬浮窗开发全指南:从原理到多版本适配

Android悬浮窗开发全指南:从原理到多版本适配

2026/7/18 1:42:09

1. Android悬浮窗技术背景与核心挑战悬浮窗作为Android系统特色功能,本质上是通过WindowManager将View附加到系统窗口层级中。这种技术允许应用在全局范围内显示内容,不受Activity生命周期限制,常见于录屏工具、聊天头像、游戏辅助等场景。在…

Laravel异常处理机制详解与最佳实践

Laravel异常处理机制详解与最佳实践

2026/7/18 1:42:09

1. Laravel异常处理机制概述在Laravel开发中,异常处理是保证应用健壮性的重要环节。传统的try-catch方式虽然有效,但会导致代码重复且难以维护。Laravel提供了一套完整的异常处理机制,让我们能够以更优雅的方式处理各种错误场景。Laravel的异…

具身智能基础技术路线:破解感知-动作耦合与实时控制断层

具身智能基础技术路线:破解感知-动作耦合与实时控制断层

2026/7/18 1:32:08

1. 具身智能不是“会动的AI”,而是重新定义“智能”的起点很多人第一次听到“具身智能”这个词,下意识反应是:“哦,就是给大模型装上机器人身体?”——这恰恰踩进了最典型的认知陷阱。我带过三支不同方向的具身团队&am…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/17 10:50:47

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/17 17:34:09

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

2026/7/18 0:02:02

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

2026/7/18 0:02:02

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

某智驾大牛创业

某智驾大牛创业

2026/7/18 0:02:02

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…