LeetCode 138 赋值带随机指针的链表[链表 Map 拷贝] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 138 赋值带随机指针的链表[链表 Map 拷贝] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
遇到链表拷贝的题目有一个明显的思路,就是递归和Map!只能说是yyds!每一个真实的节点映射一个拷贝的节点,不断递归下去,返回当前的节点,这样就串成一个串了,代码如下:
/*
// Definition for a Node.
class Node {
public:
int val;
Node* next;
Node* random;
Node(int _val) {
val = _val;
next = NULL;
random = NULL;
}
};
*/
class Solution {
private:
unordered_map<Node*, Node*> mp;
public:
Node* copyRandomList(Node* head) {
// 如果为空
if(head == nullptr) {
return nullptr;
}
// 如果当前位置无映射
if(!mp.count(head)) {
// 拷贝
Node * node = new Node(head -> val);
// 映射
mp[head] = node;
node -> next = copyRandomList(head -> next);
node -> random = copyRandomList(head -> random);
}
return mp[head];
}
};
以上是关于LeetCode 138 赋值带随机指针的链表[链表 Map 拷贝] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode No.138 复制带随机指针的链表(回溯)
Leetcode No.138 复制带随机指针的链表(回溯)