题目
请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。
思路
第一步,将1-2-3链表变成1-1-2-2-3-3,每个节点都复制一个其克隆节点。
第二步,将复制的克隆节点的random赋值。
第三步,将链表剥离,恢复原链表,并产生复制链表。
代码
/*
// 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)