leetcode-138. 复制带随机指针的链表
题目:
代码:
#include <iostream>
#include <map>
using namespace std;
class Node {
public:
int val;
Node* next;
Node* random;
Node(int _val) {
val = _val;
next = NULL;
random = NULL;
}
};
//利用回溯+哈希表的形式
Node* copyRandomList(Node* head) {
if(!head){
return nullptr;
}
unordered_map<Node*,Node*> cacheNode;
if(!cacheNode.count(head)){
Node *headNew = New Node(head->val);
cacheNode[head]=headNew;
headNew->next=copyRandomList(head->next);
headNew->random=copyRandomList(head->random);
}
return cacheNode[head];
}
int main(){
Node* res;
Node *head;
res=copyRandomList(head);
return 0;
}