代码拉取完成,页面将自动刷新
/*
struct RandomListNode {
int label;
struct RandomListNode *next, *random;
RandomListNode(int x) :
label(x), next(NULL), random(NULL) {
}
};
*/
class Solution {
public:
/*
插入节点法:
pass1: insert;
pass2: copy;
pass3: split linkedlist
*/
RandomListNode* Clone(RandomListNode* pHead) {
if(!pHead){
return nullptr;
}
typedef RandomListNode ListNode;
ListNode *newhead = nullptr;
ListNode *tail = nullptr;
ListNode *cur = pHead;
while(cur){
ListNode *node = new ListNode(cur->label);
node->next = cur->next;
cur->next = node;
cur = node->next;
}
cur = pHead;
while(cur){
ListNode *copy = cur->next;
copy->random = cur->random ? cur->random->next : nullptr;
cur = copy->next;
}
cur = pHead;
while(cur){
if(!newhead){
newhead = tail = cur->next;
}else{
tail->next = cur->next;
tail = tail->next;
}
cur->next = tail->next;
tail->next = nullptr;
cur = cur->next;
}
return newhead;
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。