java深拷贝循环单链表,JZ25-复杂链表的复制

2023-11-10

题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)

/*

public class RandomListNode {

int label;

RandomListNode next = null;

RandomListNode random = null;

RandomListNode(int label) {

this.label = label;

}

}

*/

import java.util.*;

public class Solution {

public RandomListNode Clone(RandomListNode pHead){

HashMap map = new HashMap();

RandomListNode p = pHead;

//第一次遍历,新简历节点

while(p!=null){

RandomListNode newNode = new RandomListNode(p.label);

map.put(p,newNode);

p = p.next;

}

//第二次遍历,赋值映射关系

p = pHead;

while(p!=null){

RandomListNode node = map.get(p);

node.next = (p.next==null)?null:map.get(p.next);

node.random = (p.random==null)?null:map.get(p.random);

p = p.next;

}

return map.get(pHead);

}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java深拷贝循环单链表,JZ25-复杂链表的复制 的相关文章

  • C#:递归汉诺塔

    一 运行效果截图 二 实验要求 如果n 1 直接将金片从A针移到C针上 函数输出 Form A to C 如果n gt 1时 移动过程分解为以下几个步骤 1 将A上的n 1片金片借助C针移到B针上 2 把A针上剩下的一片金片由A针移到C针上
  • stomp.min.js(stomp协议的客户端脚本)、sockjs.min.js(SockJS的客户端脚本)以及jQuery

    stomp min js stomp协议的客户端脚本 sockjs min js SockJS的客户端脚本 以及jQuery 点击打开链接
  • [ C++ ] — 智能指针

    一 三种智能指针 auto ptr unique ptr shared ptr auto ptr是C 98提供的方案 C 11已经将其摒弃 以下只是示例 实际不要使用auto ptr 使用new和delete管理动态内存常出现的问题 1 忘
  • STM32MP1开发环境搭建

    STM32MP1 wiki教程 stm32mpu 按照教程的介绍 开发MPU需要在linux环境下 一般选择在VMware虚拟机环境下安装Ubuntu 安装步骤 1 安装VMware 我安装的是VMware 10 0 0 链接 https
  • jQuery使用手册

    官方网站 http jquery com jQuery是一款优秀js开发库类 特别是对css和XPath的支持 使我们写js变得更加方便 如果你不是个js高手又想写出优 秀的js效果 jQuery可以帮你达到目的 下载地址 Starterk
  • C语言数据结构问题:停车场问题(栈和队列)

    试题描述 设停车场只有一个可停放几辆汽车的狭长通道 只有一个大门可供汽车进出 汽车在停车场内按车辆到达的先后顺序依次排列 若车场内已停满几辆汽车 则后来的汽车只能在门外的便道上等候 一旦停车场内有车辆开走 则排在便道上的第一辆汽车即可进入
  • ARP(地址解析协议)协议和RARP协议(逆地址解析协议)

    ARP协议 地址解析协议 及ARP 是根据IP地址获取物理地址的一个TCP IP协议 主机发送信息是将包含将包含目标IP地址的APR请求广播到局域网络上的所有主机 并接收返回消息 以此确定目标的物理地址 受到返回消息的时候将IP地址和物理地
  • 接口自动化之测试数据动态生成并替换

    一 测试数据 1 随机库random 查看内置random方法 该方法自行学习 不再介绍 show 2 Faker库 pip install faker showHttps github com joke2k faker 3 应用到项目中
  • Java 反射机制 与 工厂设计模式

    什么是反射 Java反射机制是在运行状态中 对于任意类 都能知道这个类的全部属性和方法 对于任意对象 都能够调用它的任何一个方法或属性 这种动态获取的信息以及动态调用对象的方法的功能 称为Java语言的反射机制 Class类 Class 是
  • MPI与main()程序中的其他函数执行次数

    我原先以为只有在MPI代码区域 即MPI Init argc argv 到MPI Finalize 中的代码才会涉及到进程通信的问题 但实际上在MPI区域外的代码依然受到影响 执行的次数与开启的进程数有关 为此可以使用MPI 秩 rank
  • AttributeError: 'Function' object has no attribute 'fn' [in caffe]

    n global pool prob3 L Sigmoid n global pool up3 name global pool prob3 ntop 0 top global pool up3 n att repmat3 L Tile n
  • 智能语音技术栈

    识别原理 硬件数据采集 软件数据处理 目前主流的开源平台包括CMU Sphinx HTK Kaldi Julius iATROS CNTK TensorFlow等 CMU Sphinx是离线的语音识别工具 支持DSP等低功耗的离线应用场景
  • 推荐系统 用户画像 标签聚类 个性化搜索

    最近在做短视频推荐 和别的部门配合着做 我们部门做用户画像这一部分 回头看看 我们部门以前做的用户画像只能称之为 所谓的用户画像 如果一个人不懂用户画像还好指挥来指挥去真的让人无言 不知道其他公司的有没有这样的人儿那 哈哈 扯远了 言归正传
  • linux系统编程(五)针对linux系统中文件的IO操作

    文章目录 1 系统调用 2 C标准库文件IO函数 3 open close函数 3 1 函数原型 3 2 常用参数 3 3 open常见错误 4 文件描述符 4 1 PCB进程控制块 4 2 文件描述图表 4 3 最大打开文件数 4 4 F
  • LVS负载均衡之--Keepalived模式(具详细)

    前言 前面和拐友们一起掌握了NAT和DR模式 这章来看一下负载均衡里的最后一种Keepalived模式 在生产中这个模式用的是还是比较广泛的 目录 一 Keepalived概述 1 2Keepalived的工作原理 1 3Keepalive
  • 登录时发起的请求是Get还是Post?Get和Post的区别

    为了保证信息的安全性 注册 登录等操作通常都会使用POST请求 GET请求一般用来获取信息 1 根据HTTP规范 GET用于信息获取 GET请求的数据会附在URL之后 就是把数据放置在HTTP协议头中 以 分割URL和传输数据 参数之间以
  • CSS总结第七天

    day09 前端基础CSS第七天 学习目标 能够使用精灵图 能够使用字体图标 能够写出 CSS 三角 能够写出常见的 CSS 用户界面样式 能够说出常见的布局技巧 1 精灵图 重点 1 1 为什么需要精灵图 一个网页中往往会应用很多小的背景
  • IDEA 类名及方法名为红色,但是能正常启动-处理办法

    今天在切换分支过后 idea里面很多类名 方法名报红 提示类等找不到 但是不影响功能 解决办法 点击 idae 的 File gt Invalideate Caches Restart 清除缓存并重启即可 UG7O9VKKH6 eyJsaW
  • Spark:常用算子总结大全

    目录 park的算子的分类 从大方向来说 Spark 算子大致可以分为以下两类 1 Transformation 变换 转换算子 这种变换并不触发提交作业 完成作业中间过程处理 2 Action 行动算子 这类算子会触发 SparkCont

随机推荐

  • 小白的高德地图初体验(二)——聚合点

    小白的高德地图初体验 二 聚合点 说到高德地图 肯定要推荐官方文档 传送门 走你 小白的高德地图初体验 一 打点 小白的高德地图初体验 二 点聚合 小白的高德地图初体验 三 轨迹 小白的高德地图初体验 四 矢量图形 小白的高德地图初体验 五
  • Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize

    最近把项目中es 从1 7 3 升级 到 2 2 2 遇到如下异常 exception org springframework web util NestedServletException Handler processing faile
  • Android Studio 2.4 Preview(译文)

    原文地址 http tools android com tech docs android profiler Android的探查Android Studio中预览2 4 新的Android探查器在Android 2 4工作室预览窗口代替了
  • Palindrome Partitioning

    Given a string s partition s such that every substring of the partition is a palindrome Return all possible palindrome p
  • pip 和conda

    区别 pip是Python包的通用管理器 conda是一个与语言无关的跨平台环境管理器 pip在任何环境中安装python包 conda需要安装在conda环境中装任何包 Pip代表Pip Installs Packages 是Python
  • seaborn palette参数各配色方案及显示效果

    使用方法 以采用Paired r配色方法为例 通过调用barplot palette Spectral r 来使用配色 Paired r Accent Accent r Blues Blues r BrBG BrBG r BuGn BuGn
  • STM32 基础系列教程 5 – 系统定时器

    前言 学习stm32 systime的使用 用基本定时器产生定时1ms定时中断 用于参生1ms系统时钟节拍 并实现将1ms 节拍改成500us 或其它时间功能 并实产生的时间节拍为机基准实现控制LED闪烁 示例详解 基于硬件平台 STM32
  • Centos7.5 防火墙关闭但是除22端口其他端口无法访问问题

    centos7系统 关闭 firewalld防火墙 但是除了22端口 其余端口无法被外界访问 本地访问正常 我这里是服务器缓存问题 将服务器防火墙重启刷新一下就可以正常使用了 根据下面命令 操作 firewalld 防火墙 启动 syste
  • 关于前后台日期格式化问题 ,@JsonFormat、@JSONField、@DateTimeFormat

    大家都知道可能前台表单提交后台 或者后台 实体类json 序列化到前台可能格式不是我们想要的情况 这时候可能就需要上面三个注解来帮忙 但是 本人在项目使用过程中 使用 JsonField 一直失效 百思不得其解 难道是 在springboo
  • 爬虫之添加代理(五)

    验证代理是否可用 try telnetlib Telnet 221 15 192 96 port 1080 timeout 3 except print ip无效 else print ip有效 添加代理 添加proxy属性 import
  • 【机器学习】GRU 讲解

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 在阅读本篇之前建议先学习 RNN 讲解 LSTM 讲解 3 GRU 3 1 网络结构 GRU 是循环神经网络的一种 和 LSTM 一样 是为了解决长期依赖问题 GRU 单元结构如下
  • Overleaf使用tips(自己随手记)

    使用中文输入 导入包 usepackage UTF8 ctex 切换编译器为XeLatex 另起一段 直接空几个行就行 比如 注释 选中后ctrl 标题的使用 section 这是一级标题 subsection 这是二级标题 subsubs
  • TVM编译安装

    本文是在已大致了解tvm功能和架构的基础上 根据官方文档 在x86 64 Ubuntu 18 04 GPU Pytorch1 8 0上安装TVM的流程 参考文档 TVM安装官方文档 llvm下载链接 1 下载源代码 从tvm官网下载源代码
  • 基于粒子群算法优化支持向量机(PSO-SVM)的时间序列预测。模型评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码质量极高,方便学习和替换数据。

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 tic 导入数据 f xlsread windspeed xls Sheet1 B2 B1001 x y da
  • Jina AI x 矩池云

    近 5 年以来 图片 视频 语音等非结构化数据的数量 出现了爆发式增长 随着深度学习技术的不断升级 深度表征学习 迁移学习 对比学习等技术日益成熟 非结构化数据的搜索也逐渐形成可能 在此背景下 专注于神经搜索技术的商业开源软件公司 Jina
  • DRM框架(vkms)分析(3)----connector->func && connector->helper_private的使用

    一 connector gt func drm connector funcs类型的对象实例 其中有些对象实例可直接使用helper函数 有些可以自定义 还有一些可以忽略掉不赋值的 struct drm connector funcs co
  • ubuntu12.04搭建android开发环境

    一直准备学一点Linux的东西 一直没有付诸行动 这个周末准备安装一下 做了将近半年的android开发 准备学一点关于框架和源码的东西 安装之前也百度谷歌了很多次 也看了网上不少的资料 总结一点 就是对于像我这种入门级的人来说 还是不够明
  • 5种创建Dataframe方法

    下面将简要介绍Dataframe的5种创建方法 由于输出结果比较冗余 这里将不会展示输出结果 读者可以自行赋值粘贴 最好使用jupyter运行 并查看结果 另外的 代码中有非常详细的注释 Dataframe创建方法一 import nump
  • 【网络】UDP协议详解

    目录 UDP的感性理解 UDP协议格式 UDP协议格式感性理解 UDP特点 UDP的缓冲区 UDP的感性理解 UDP的传输过程类似于寄信 假设你要写一封家书寄回家里 首先你要在信封上填写好寄件人和收件人的地址 其次在贴好邮票 最后将信件投放
  • java深拷贝循环单链表,JZ25-复杂链表的复制

    题目描述 输入一个复杂链表 每个节点中有节点值 以及两个指针 一个指向下一个节点 另一个特殊指针random指向一个随机节点 请对此链表进行深拷贝 并返回拷贝后的头结点 注意 输出结果中请不要返回参数中的节点引用 否则判题程序会直接返回空