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

力扣138随机链表复制(最本质问题解决:random指针)

题目来源:

138. 随机链表的复制 - 力扣(LeetCode)

最本质问题

最本质问题就是, random指针的处理。

这题,如果想要不使用hashMap就会出现一下两种问题:

问题1:

random指针问题,新结点还不存在random的指针,random是随机指向整个新链表的角度。

问题2:

random指针的引用问题: 如何将random指向原引用变为指向复制链表呢?

背景:

一次遍历,创建新结点,去赋值val和next值给到新结点,就会出现无法赋值random的情况,因为出现了问题1,二次遍历赋值random会发现,出现问题2,ramdom是指向原引用的。

random第一次遍历肯定无法赋值,random是指向原结点的,新链表没建立就不存在random指针,random指针是整条链表的角度来看的。

问题解决

问题1解决:

通过多次遍历解决

问题2解决:

通过给结点绑定映射关系,就能知道哪个结点对应哪个结点,这样就算random引用了原结点,依旧可以通过映射关系来获取。

隐式映射:

a->a的复制结点A->b->B->c->C

通过将此链表分离就可以获得a->b->c  and  A->B->C

一个原引用的链表,一个复制的链表。

显示引用:

使用HashMap

代码

第一次遍历,创建新结点,生成映射关系,

第二次遍历,进行赋值,赋值的next和random引用的是对应映射关系中的random

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

http://www.dtcms.com/a/474801.html

相关文章:

  • 手机网站开发还是调用个人作品网站策划书
  • 工程经济对折现率选择的理论、方法与行业实践研究
  • 郑州网站建设公司排行榜网站怎么做百度优化
  • LangChain - 如何使用阿里云百炼平台的Qwen-plus模型构建一个桌面文件查询AI助手 - 超详细
  • C语言四大排序算法实战
  • 自己做效果图的网站推广优化网站
  • 2025 年 10 月 TIOBE 指数
  • 网站建设合同属于技术合同吗企业网站设计专业好吗
  • cdr可不可做网站公司简介概况怎么写
  • 做区位分析的网站重庆的企业的网站建设
  • Claude Code 本地部署实战:打造属于你的 AI 编程助手
  • 【11408学习记录】考研数学精华:矩阵相似全解——从定义到判别一网打尽!
  • tk网站注册阿里企业邮箱电话
  • visual c 网站开发百度网站公司信息推广怎么做
  • anthropics-claude-cookbooks学习记录02
  • 海南省住房与城乡建设部网站在那些网站可以接兼职做
  • MYSQL学习笔记(个人)(第十四天)
  • pc做网站服务器网站前台模板 html
  • AngularJS 路由
  • 网站建设需要哪些费用支出网站域名骗子
  • 英文网站开发哪家好外卖网站开发
  • 保姆级教程:如何用feishu2md快速下载飞书文档为md文件
  • 上海专业网站建设公司排名做签证网站
  • 手机网站大全推荐比较有名的公司网站
  • 福州网站建设策划方案天健emp软件开发平台
  • React useState详解与使用指南(函数式更新)
  • 网站主域名南昌集团制作网站公司
  • 做视频网站的流程软件项目外包平台
  • 图片类网站建设全国卫生机构建设管理系统网站
  • 网站建设实训意见建议企业宣传网页设计