day37(12.18)——leetcode面试经典150

138. 随机链表的复制

138. 随机链表的复制

题目:

题解:

java 复制代码
/*
// 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;
        Node cur = head;
        Map<Node,Node> map = new HashMap<>();
        while(cur != null) {
            map.put(cur, new Node(cur.val));
            cur = cur.next;
        }
        cur = head;
        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);
    }
}
相关推荐
参.商.2 小时前
【Day43】49. 字母异位词分组
leetcode·golang
m0_569881472 小时前
C++中的装饰器模式变体
开发语言·c++·算法
笒鬼鬼2 小时前
【API接口】最新可用红果短剧接口
算法·api·笒鬼鬼·红果短剧·接口源码
weixin_421922692 小时前
C++与边缘计算
开发语言·c++·算法
2401_831920742 小时前
C++编译期数组操作
开发语言·c++·算法
肆忆_2 小时前
【面试】手撕线程池
面试
wangfpp2 小时前
性能优化,请先停手:为什么我劝你别上来就搞优化?
前端·javascript·面试
殷紫川2 小时前
秒杀系统高并发核心优化与落地全指南
算法·架构
野犬寒鸦2 小时前
JVM垃圾回收机制面试常问问题及详解
java·服务器·开发语言·jvm·后端·算法·面试
风酥糖2 小时前
Godot游戏练习01-第16节-游戏中的状态机
算法·游戏·godot