LeetCode Algorithm 138. 复制带随机指针的链表
Posted Alex_996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 138. 复制带随机指针的链表相关的知识,希望对你有一定的参考价值。
题目链接:138. 复制带随机指针的链表
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。
Ideas
算法:哈希表
数据结构:链表
思路:相当于手动写一个深拷贝算法,可以利用哈希表记录链表中每个节点的对应节点,遍历一遍即可创建新的链表节点,此时还没有创建链表之间的关联关系,所以还需要再遍历一遍,将关联关系也创建上即可。
Code
C++
class Solution
public:
Node* copyRandomList(Node* head)
unordered_map<Node*, Node*> map;
Node *cur = head;
while (cur != nullptr)
map[cur] = new Node(cur->val);
cur = cur->next;
cur = head;
while (cur != nullptr)
map[cur]->next = map[cur->next];
map[cur]->random = map[cur->random];
cur = cur->next;
return map[head];
;
以上是关于LeetCode Algorithm 138. 复制带随机指针的链表的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题Python138. 复制带随机指针的链表
LeetCode 138 Copy List with Random Pointer
LeetCode第138题—复制带随机指针的链表—Python实现