2023-08-04力扣今日三题
链接:
剑指 Offer 35. 复杂链表的复制
题意:
如题
解:
看题研究了好一阵,指针map
实际代码:
#include<bits/stdc++.h>
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==nullptr) return nullptr;map<Node*,Node*>mp;Node* newhead=nullptr,*insertor=nullptr;while(head!=nullptr){if(newhead==nullptr){newhead=new Node(head->val);insertor=newhead;}else{insertor->next=new Node(head->val);insertor=insertor->next;}insertor->random=head->random;mp[head]=insertor;head=head->next;}insertor=newhead;while(insertor!=nullptr){insertor->random=mp[insertor->random];insertor=insertor->next;}return newhead;
}
int main()
{}
限制:
-10000 <= Node.val <= 10000
Node.random 为空(null)或指向链表中的节点。
节点数目不超过 1000 。