/**
* https://leetcode-cn.com/problems/copy-list-with-random-pointer/
* 138. 复制带随机指针的链表
*
* @param head
* @return
*/
public static Node copyRandomList(Node head) {
Map<Node, Node> map = new HashMap<>();
Node node = head;
while (node != null) {
map.put(node, new Node(node.val));
node = node.next;
}
node = head;
while (node != null) {
map.get(node).next = map.get(node.next);
map.get(node).random = map.get(node.random);
node = node.next;
}
return map.get(head);
}