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

力扣HOT100(42)链表-随机链表的复制

方法一:回溯 + 哈希表(面试首选,好理解、不易错)

1. 核心思路(一句话讲透)

用一个哈希表,存「原节点 → 新节点」的一一对应关系。 这样不管什么时候,只要你需要找某个原节点对应的新节点,直接查哈希表就行,完美解决 “random 指向的节点还没创建” 的问题。

2. 完整解题步骤

  1. 创建哈希表unordered_map<Node*, Node*> cachedNode,key 是原节点,value 是对应的新节点
  2. 递归终止条件:如果当前节点是nullptr,直接返回nullptr
  3. 检查是否已复制:如果当前节点已经在哈希表中,说明已经复制过了,直接返回对应的新节点(防止重复复制)
  4. 创建新节点:复制当前节点的值,存入哈希表
  5. 递归复制指针
    • 递归复制当前节点的next节点,赋值给新节点的next
    • 递归复制当前节点的random节点,赋值给新节点的random
  6. 返回新节点
/* // 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: unordered_map<Node*,Node*> cachedNode; Node* copyRandomList(Node* head) { if(head == nullptr){ return nullptr; } if(!cachedNode.count(head)){ Node* headNew = new Node(head->val); cachedNode[head] = headNew; headNew->next = copyRandomList(head->next); headNew->random = copyRandomList(head->random); } return cachedNode[head]; } };
http://www.zskr.cn/news/1422522.html

相关文章:

  • 在 VS2022 中创建 Presenter 文件对
  • GA/T 1400协议实战:用Java和RestTemplate搞定通知消息推送(附完整代码)
  • 免费写标书软件推荐:一个功能永久免费的标书AI,值不值得试? - 陈工0237
  • BERT-large-uncased训练数据揭秘:BookCorpus+Wikipedia的11亿词元预训练
  • 2026年前端开发完全指南:AI辅助写组件、调Bug、生成接口代码,效率翻倍
  • 微信聊天记录永久保存终极指南:如何让每一段对话都成为永恒记忆
  • 深度解析:洛雪音乐音源架构的技术实现与性能优化
  • 2026年沈阳地坪市场扫描:水性聚氨酯砂浆厂家多维实力梳理 - 兔兔不是荼荼
  • 从BIOS到ACPI:聊聊操作系统电源管理这二十年的‘幕后英雄’
  • 泰国DAB法规 学习英语~
  • NPU加速实战:Llama3-ChatQA-1.5-8B在国产硬件上的部署与性能优化指南
  • 从Modbus到XMODEM:一文搞懂CRC-16不同变体的区别与C语言实战
  • 原神FPS解锁器终极指南:三步实现高帧率游戏体验
  • 2026北京木门定做厂家推荐|ENF级环保板材优选,靠谱定制品牌 - 余小铁
  • Yi-VL-6B-hf性能评测:MMMU与CMMMU数据集上的卓越表现
  • 郑州市航空港区水电维修|维小达 专业电路维修、水管维修、管道疏通、马桶维修、暖气维修一站式服务 - 维小达科技
  • 2025-2026 南京装修公司质价比推荐:不同预算区间怎么选 - 商业新知
  • 水处理市场升级,台州海德能环保科技凭技术创新与服务并重脱颖而出
  • 终极免费激活方案:如何3分钟完成Windows系统专业级激活
  • 别再死记KT/C了!从电荷守恒出发,重新理解SAR ADC采样网络的设计精髓
  • Yi-6B微调完整指南:从数据准备到模型部署的完整流程
  • MiniCPM3-4B-FP16应用实战:构建智能问答系统的5个步骤
  • Cadence IC617仿真避坑:手把手教你从仿真曲线中提取TSMC 65nm工艺的MOS参数(附计算模板)
  • 基于Arduino与步进电机的低成本自动化3D扫描转台DIY全攻略
  • 163MusicLyrics:重新定义音乐歌词获取体验的智能助手
  • 终极暗黑2存档编辑器:5分钟可视化修改你的游戏角色
  • 5分钟搞定Python金融数据获取的终极指南
  • 2026年昆明财税服务行业观察:昆明代理记账公司多维信息梳理 - 兔兔不是荼荼
  • 【Spring AI实战】第10章 多大模型统一适配与动态切换
  • 基于AD623与双T滤波器的心电信号调理电路设计与实践