代码:
/*
// 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 n1 = new Node(head.val);Node n2;Node newHead = n1;Node cur = head;Map<Node,Node> map = new HashMap<>();map.put(head,newHead);while(cur.next!=null){cur = cur.next;n2 = new Node(cur.val);map.put(cur,n2);n1.next = n2;n1 = n2;}n1.next = null;cur = head;Node newCur = newHead;while(cur!=null){newCur.random = map.get(cur.random);cur = cur.next;newCur = newCur.next;}return newHead;}
}