这个怎么解决?
class Solution { public: RandomListNode* Clone(RandomListNode* pHead) { if(pHead==nullptr) return pHead; RandomListNode* head=new RandomListNode(0); RandomListNode* p=head; RandomListNode* cur=pHead; //复制 while(cur) { p->next=cur; p=p->next; cur=cur->next; RandomListNode* newhead=new RandomListNode(p->label); p->next=newhead; p=p->next; } cur=head->next; p=cur->next; //链接指针 while(cur) { if(cur->random) p->random=cur->random->next; else p->random=cur->random; cur=p->next; if(cur) p=cur->next; } cur=head; p=cur->next; //拆分 while(p) { cur->next=p->next; cur=cur->next; delete p; p=cur->next; } return head->next; } };
结果:
空.请检查一下你的代码,有没有循环输入处理多个case.点击查看如何处理多个case
这是源问题:
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
我的代码有问题还是啥?我觉得我的代码没问题啊?模拟了好几次了.
求大佬解答!!
#C/C++#