- 复制带随机指针的链表
题目详情见链接
复制带随机指针的链表
其中Node的定义如下:
class Node {
int val;
Node next;
Node random;
public Node(int val) {
this.val = val;
this.next = null;
this.random = null;
}
public Node copyRandomList(Node head) {
Node temp = head;
Map<Node,Node> map = new HashMap<>();
while(temp != null){
map.put(temp,new Node(temp.val));
temp = temp.next;
}
temp = head;
Node root = map.get(temp);
Node newNode = root;
while(temp != null){
newNode.next = map.get(temp.next);
newNode.random = map.get(temp.random);
temp = temp.next;
newNode = newNode.next;
}
return root;
}
执行结果: