在C++中,你可以使用unordered_map
来代替Java中的HashMap
,下面是将上述代码转换为C++的示例:
#include <unordered_map>
struct Node {
int val;
Node* next;
Node* random;
Node(int value) : val(value), next(nullptr), random(nullptr) {}
};
Node* copyRandomList(Node* head) {
std::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];
}
注意,在C++中,你需要自行管理内存,确保释放动态分配的节点。
内容由零声教学AI助手提供,问题来源于学员提问