随机链表的复制

题目链接

链接: 随机链表的复制

题目要求

**简单来说就是复刻出和示例一个一模一样的链表结构 **

解题思路

  1. 遍历链表 : 把原链表的每个节点的值 复制到要深拷贝链表的每个节点 并把 原链表的节点作为 key 要进行深拷贝链表的节点作为 val put 到 map 中
  2. 第二遍遍历,通过操作map.get(原链表节点)得到 val 也就是 需要深拷贝链表节点 来完成 next 和 randem 指针对应位置的连接

代码实现

java 复制代码
 public Node copyRandomList(Node head) {
        Map<Node, Node> map = new HashMap<Node, Node>();
        Node cur = head;
        //复制 值
        while(cur != null){
            Node newNode = new Node(cur.val);
            map.put(cur, newNode);
            cur = cur.next;
        }
        cur = head;
        //复制 next 和 randem 的指向
        while(cur != null){
            map.get(cur).next = map.get(cur.next);
            map.get(cur).random = map.get(cur.random);
            cur = cur.next;
        }
        return map.get(head);
    }
相关推荐
云和数据.ChenGuang18 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
摇滚侠18 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
silvamux_21 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
步行cgn1 天前
StringHttpMessageConverter 详解:Spring MVC 中字符串读写的默认转换器
java·spring·mvc
摇滚侠1 天前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
小蒜学长1 天前
基于Spring Boot+Vue3的在线医疗咨询系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·在线问诊·在线医疗咨询系统
Deng桑1 天前
SpringAI写第一个Agent-把工单循环跑起来
java·agent·工具调用·spring ai
步行cgn1 天前
@ResponseBody 详解:Spring MVC 中把返回值直接写入响应体
java·spring·mvc
jason成都1 天前
RTKLIB 的 Java 移植版来了:rtklib-java v3.3.0 功能全景
java·gnss·rtklib·rtklib_java
LazyHunter91 天前
JDK 28:Java 下一步方向解析与新特性展望
java·jdk