import java.util.HashMap;
public class Test25 {
public class RandomListNode {
int label;
RandomListNode next = null;
RandomListNode random = null;
RandomListNode(int label) {
this.label = label;
}
}
public RandomListNode Clone(RandomListNode pHead)
{
if(pHead==null) {
return null;
}
HashMap<RandomListNode, RandomListNode> map = new HashMap<>();
RandomListNode head = pHead;
while(head!=null) {
map.put(head, new RandomListNode(head.label));
head = head.next;
}
head = pHead;
while(head != null) {
map.get(head).next = map.get(head.next);
map.get(head).random = map.get(head.random);
head = head.next;
}
return map.get(pHead);
}
}