LeetCode 138题解 | 随机链表的复制

随机链表的复制

  • 一、题目链接
  • 二、题目
  • 三、分析
  • 四、代码

一、题目链接

138.随机链表的复制

二、题目

在这里插入图片描述

三、分析

数据结构初阶阶段,为了控制随机指针,我们将拷贝结点链接在原节点的后面解决,后面拷贝节点还得解下来链接,非常麻烦。这里我们直接让{原结点,拷贝结点}建立映射关系放到map中,控制随机指针会非常简单方便,这里体现了map在解决一些问题时的价值,完全是降维打击。

深拷贝一遍原链表,并连接。确定拷贝结点的random指针就需要原结点找到对应的拷贝结点:map< 原结点,拷贝结点>。

四、代码

/*
// Definition for a Node.
class Node {
public:int val;Node* next;Node* random;Node(int _val) {val = _val;next = NULL;random = NULL;}
};
*/class Solution {
public:Node* copyRandomList(Node* head) {map<Node*, Node*> nodeMap;Node* copyhead = nullptr, *copytail = nullptr;Node* cur = head;while (cur){Node* copy = new Node(cur->val);if (copytail == nullptr){copyhead = copytail = copy;}else{copytail->next = copy;copytail = copy;}nodeMap.insert({ cur, copy });// 或者 nodeMap[cur] = copytail;cur = cur->next;}cur = head;Node* copy = copyhead;while (cur){if (cur->random == nullptr){copy->random = nullptr;}else{copy->random = nodeMap[cur->random];}cur = cur->next;copy = copy->next;}return copyhead;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914209.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机存储架构】分布式存储架构

引言&#xff1a;数据洪流时代的存储革命“数据是新时代的石油” —— 但传统存储正成为制约数据价值释放的瓶颈核心矛盾&#xff1a;全球数据量爆炸增长&#xff1a;IDC预测2025年全球数据量将达175ZB&#xff08;1ZB10亿TB&#xff09;传统存储瓶颈&#xff1a;单机IOPS上限仅…

【Linux-云原生-笔记】数据库操作基础

一、什么是数据库&#xff1f;数据库就是一个有组织、可高效访问、管理和更新的电子化信息&#xff08;数据&#xff09;集合库。简单来说&#xff0c;数据库就是一个高级的Excel二、安装数据库并初始化1、安装数据库&#xff08;MySQL&#xff09;dnf search一下mysql数据库的…

HarmonyOS中各种动画的使用介绍

鸿蒙&#xff08;HarmonyOS&#xff09;提供了丰富的动画能力&#xff0c;涵盖属性动画、显式动画、转场动画、帧动画等多种类型&#xff0c;适用于不同场景的交互需求。以下是鸿蒙中各类动画的详细解析及使用示例&#xff1a;1. 属性动画&#xff08;Property Animation&#…

CSP-S 模拟赛 10

T1 洛谷 U490727 返乡 思路 首先要意识到一个问题&#xff0c;就是如果所有人总分一定&#xff0c;那么是不会出现偏序的。 可以感性理解一下&#xff0c;就是对于 i,ji, ji,j&#xff0c; 若 ai≤aj,bi≤bja_i \leq a_j, b_i \leq b_jai​≤aj​,bi​≤bj​&#xff0c;那么…

CMD,PowerShell、Linux/MAC设置环境变量

以下是 CMD&#xff08;Windows&#xff09;、PowerShell&#xff08;Windows&#xff09;、Linux/Mac 在 临时/永久 环境变量操作上的对比表格&#xff1a;环境变量操作对照表&#xff08;CMD vs PowerShell vs Linux/Mac&#xff09;操作CMD&#xff08;Windows&#xff09;P…

MySQL(131)如何解决MySQL CPU使用率过高问题?

解决MySQL CPU使用率过高的问题需要从多个方面进行排查和优化&#xff0c;包括查询优化、索引优化、配置优化和硬件资源的合理使用等。以下是详细的解决方案和相应的代码示例。 一、查询优化 1. 检查慢查询 使用MySQL的慢查询日志来找到执行时间长的查询。 SET GLOBAL slow_que…

docker基础与常用命令

目录 一.docker概述 1.docker与虚拟机区别 2.Linux 六大命名空间 3.Docker 的核心技术及概念 二.docker部署安装 三.docker常用命令 1.搜索镜像 2.获取镜像 3.查看镜像信息 4.添加镜像标签 5.删除镜像 6.存出与载入镜像 7.上传镜像 8.创建容器 9.查看容器状态 1…

Cypress与多语言后端集成指南

Cypress 简介 基于 JavaScript 的前端测试工具,可以对浏览器中运行的任何内容进行快速、简单、可靠的测试Cypress 是自集成的,提供了一套完整的端到端测试,无须借助其他外部工具,安装后即可快速地创建、编写、运行测试用例,且对每一步操作都支持回看不同于其他只能测试 UI…

计算机毕业设计ssm基于JavaScript的餐厅点餐系统 SSM+Vue智慧餐厅在线点餐管理平台 JavaWeb前后端分离式餐饮点餐与桌台调度系统

计算机毕业设计ssm基于JavaScript的餐厅点餐系统0xig8788&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。扫码点单、手机支付、后厨实时出票已经成为食客对餐厅的基本预期。传统的…

wedo稻草人-----第32节(免费分享图纸)

夸克网盘&#xff1a;https://pan.quark.cn/s/ce4943156861 高清图纸源文件&#xff0c;需要的请自取

Jmeter函数的使用

函数名作用用法${__Random(,,)}${__RandomString(,,)}随机生成一些东西${__Random(000,999,)} ${__Random(${test1},${test2},)}${__RandomString(${__Random(3,9,)},asdfghjkl,)}${__time(,)}获取当前的时间戳&#xff0c;也可以定义格式${__CSVRead(,)}读取CSV文件的格式&…

Windows 用户账户控制(UAC)绕过漏洞

漏洞原理CVE-2021-31199 是一个 Windows 用户账户控制&#xff08;UAC&#xff09;绕过漏洞&#xff0c;CVSS 3.1 评分 7.8&#xff08;高危&#xff09;。其核心原理如下&#xff1a;UAC 机制缺陷&#xff1a;Windows UAC 通过限制应用程序权限提升系统安全性&#xff0c;但某…

comfyUI-controlNet-线稿软边缘

{WebUI&comfyUI}∈Stable Diffuision&#xff0c;所以两者关于ContrlNet的使用方法的核心思路不会变&#xff0c;变的只是comfyUI能够让用户更直观地看到&#xff0c;并且控制生图的局部过程。 之前的webUI中涉及到ContrlNet部分知识&#xff1a;SD-细节控制-CSDN博客 概…

SOEM build on ubuntu

1.配置 soem2.编译 soem3.结果4.记录一下自己的开发环境家里台式机

STM32--USART串口通信的应用(第一节串口通信的概念)

咱们今天呢给大家讲解咱们 stm32 开发当中的串口的应用啊 &#xff0c; 串口这个专题呢啊是我们那 个学习上必须要掌握的一个外设串口有什么作用呢&#xff0c;其实在我们以后的这个开发程序当中&#xff0c;咱们可能经常需要用到一些调试 信息&#xff0c;对吧&#xff1f; 啊…

STM32F407ZGT6天气时钟+实时温湿度显示(附源码)

文章目录实现功能&#xff1a;项目展示&#xff1a;代码解析&#xff1a;实现功能&#xff1a; 1.主要功能&#xff1a;通过485通信获取传感器温湿度&#xff0c;温湿度数据显示、实时时钟显示与用户交互。使用LVGL在显示屏上展示传感器温湿度数据&#xff0c;并提供UI设置温度…

和鲸社区深度学习基础训练营2025年关卡4

使用 pytorch 构建一个简单的卷积神经网络&#xff08;CNN&#xff09;模型&#xff0c;完成对 CIFAR-10 数据集的图像分类任务。 直接使用 CNN 进行分类的模型性能。 提示&#xff1a; 数据集&#xff1a;CIFAR-10 网络结构&#xff1a;可以使用 2-3 层卷积层&#xff0c;ReLU…

前端性能优化全攻略:从加载到渲染

目录 前言网络请求优化资源加载优化JavaScript执行优化渲染优化用户体验优化性能监控与分析总结 前言 随着Web应用复杂度不断提升&#xff0c;前端性能优化变得尤为重要。本文将系统性地介绍从资源加载到页面渲染的全链路性能优化策略&#xff0c;帮助开发者构建高效、流畅的…

hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库

目录 1.简介 2.安装和配置 2.1.源码编译安装&#xff08;通用方法&#xff09; 2.2.包管理器安装&#xff08;特定系统&#xff09; 2.3.Windows 安装 3.常用的函数及功能 3.1.连接管理函数 3.2.命令执行函数 3.3.异步操作函数 3.4.回复处理函数 3.5.错误处理 3.6.…

TCP套接字

1.概念套接字是专门进行网络间数据通信的一种文件类型&#xff0c;可以实现不同主机之间双向通信&#xff0c;包含了需要交换的数据和通信双方的IP地址和port端口号。2.套接字文件的创建int socket(int domain, int type, int protocol); 功能&#xff1a;该函数用来创建各种各…