当前位置: 首页 > news >正文

LeetCode(58)随机链表的复制【链表】【中等】

在这里插入图片描述

目录

    • 1.题目
    • 2.答案
    • 3.提交结果截图

链接: 随机链表的复制

1.题目

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。

构造这个链表的 深拷贝。 深拷贝应该正好由 n全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点

例如,如果原链表中有 XY 两个节点,其中 X.random --> Y 。那么在复制链表中对应的两个节点 xy ,同样有 x.random --> y

返回复制链表的头节点。

用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:

  • val:一个表示 Node.val 的整数。
  • random_index:随机指针指向的节点索引(范围从 0n-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^4
  • Node.randomnull 或指向链表中的节点。

2.答案

/*
// 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 static Node copyRandomList(Node head) {if (head == null) {return null;}Map<Node, Node> map = new HashMap<>();Node startNode = new Node(head.val);Node node = startNode;while (head != null) {node.next = new Node(head.val);node.next.random = head.random;map.put(head, node.next);node = node.next;head = head.next;}node = startNode.next;while (node != null) {node.random = map.get(node.random);node = node.next;}return startNode.next;}
}

3.提交结果截图

在这里插入图片描述

整理完毕,完结撒花~ 🌻

http://www.lryc.cn/news/258807.html

相关文章:

  • JVM源码剖析之registerNatives方法
  • HarmonyOS鸿蒙应用开发——数据持久化Preferences
  • C++STL库的 deque、stack、queue、list、set/multiset、map/multimap
  • Vuex快速上手
  • 计网 - LVS 是如何直接基于 IP 层进行负载平衡调度
  • GEE机器学习——利用支持向量机SVM进行土地分类和精度评定
  • 【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 断点 Break 命令篇】
  • 【JVM入门到实战】(三) 查看字节码文件的工具
  • 9:00面试,9:05就出来了,问的问题有点变态。。。
  • 无需重启,修改Linux服务器时区
  • 【Android嵌入式开发及实训课程实验】【项目1】 图形界面——计算器项目
  • 利用SPSS进行神经网络分析过程及结果解读
  • 聚观早报 |东方甄选将上架文旅产品;IBM首台模块化量子计算机
  • web服务器之——www服务器的基本配置
  • 微信小程序 -- ios 底部小黑条样式问题
  • 白盒测试:探索软件内部结构的有效方法
  • 图论-并查集
  • redis-学习笔记(Jedis 通用命令)
  • C语言:高精度乘法
  • UE4 Niagara学习笔记
  • 多维时序 | Matlab实现GA-LSTM-Attention遗传算法优化长短期记忆神经网络融合注意力机制多变量时间序列预测
  • LeetCode205. Isomorphic Strings
  • Event Driven设计模式
  • PostgreSql 设置自增字段
  • 什么是泊松图像混合
  • OpenAI 承认 ChatGPT 最近确实变懒,承诺修复问题
  • 创作活动(四十九)———低代码:美味膳食或垃圾食品?
  • 【DL-TensorFlow遇错】TensorFlow中遇错合集
  • pymysql代替mysqlclient,解决mysqlclient因版本不兼容无法安装成功而无法连接mysql的问题
  • uni-app 设置当前page界面进入直接变为横屏模式