复杂链表的复制

复杂链表的复制

http://www.nowcoder.com/questionTerminal/f836b2c43afc4b35ad6adc41ec941dba

递归调用
Map映射
1判断节点是否,是,返回空节点,否则:
2.从字典判断节点是否已建立,是,返回建立的节点,否则建立新节点;并将新节点写入字典;
3便利next节点和random节点;
返回建立的节点;
class Solution {
public:
    RandomListNode* f(RandomListNode* pHead,map<RandomListNode*,RandomListNode*>&M)
    {
        RandomListNode* p=NULL;
        if(pHead==NULL)
            return p;
        auto ret=M.find(pHead);
        
        if(ret!=M.end())
        {
            return (*ret).second;
        }
        p=new RandomListNode(pHead->label);
        M.insert(pair<RandomListNode*,RandomListNode*>(pHead,p));
        p->next=f(pHead->next,M);
        p->random=f(pHead->random,M);
        return p;
    }
    RandomListNode* Clone(RandomListNode* pHead)
    {
        RandomListNode* p=NULL;
        map<RandomListNode*,RandomListNode*>M;
        p=f(pHead,M);
        return p;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务