var copyRandomList = function(head) {
    const map = new Map([[null, null]]);
    
    let node = head;
    
    // set node to the map
    while (node) {
        map.set(node, new Node(node.val, null, null));
        node = node.next;
    }
    
    node = head;    
    // get node and set to new node
    while (node) {
        const newNode = map.get(node)
        newNode.next = map.get(node.next)
        newNode.random = map.get(node.random)
        node = node.next
    }
    
    return map.get(head)
};
  1. "Карта"