与上面寻找链表的交集比较接近的,就是克隆一个链表。
给定一个链表,使得每个节点都包含一个额外的随机指针,该指针可以指向链表中的任何节点或为空,返回链表的深层拷贝。
链表在输入/输出中表示为 n 个节点的列表。每个节点表示为一对[val,random_index],其中:val表示Node.val的整数;random_index表示随机指针指向节点的索引(范围从0到 n -1),如果不指向任何节点,则为null。
思路:主要是遍历链表里面的每个next节点和random节点。当然需要利用哈希表来存储已经克隆的节点,防止多次生成。示例代码如下。
代码清单8-4 克隆随机链表