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
英文地址,請注明出處:http://en.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;該函數用來創建各種各…