用于克隆具有下一个和随机指针的链接列表的 Javascript 程序集 2
我们已经讨论了克隆链表的两种不同方法。在这篇文章中,讨论了一种更简单的克隆链表的方法。
这个想法是使用散列。下面是算法。
- 遍历原始链表,在数据方面进行复制。
- 用原始链表节点和复制的链表节点制作键值对的哈希映射。
- 再次遍历原始链表并使用哈希图调整克隆链表节点的下一个和随机引用。
下面是上述方法的实现。
Javascript
输出:
Original linked list
Data = 1, Random data = 3
Data = 2, Random data = 4
Data = 3, Random data = 5
Data = 4, Random data = -1
Data = 5, Random data = 2
Cloned linked list
Data = 1, Random data = 3
Data = 2, Random data = 4
Data = 3, Random data = 5
Data = 4, Random data = -1
Data = 5, Random data = 2
时间复杂度: O(n)
辅助空间: O(n)
请参考完整的文章 Clone a linked list with next and random pointer |设置2了解更多详情!