美文网首页二叉树之下
138. 复制带随机指针的链表

138. 复制带随机指针的链表

作者: vbuer | 来源:发表于2018-08-21 12:56 被阅读1次

    给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。
    要求返回这个链表的深度拷贝。

    代码

    class Solution {
    public:
        RandomListNode *copyRandomList(RandomListNode *head) {
            if (!head) return NULL;
            RandomListNode *res = new RandomListNode(head->label);
            RandomListNode *node = res;
            RandomListNode *cur = head->next;
            map<RandomListNode*, RandomListNode*> m;
            m[head] = res;
            while (cur) {
                RandomListNode *tmp = new RandomListNode(cur->label);
                node->next = tmp;
                m[cur] = tmp;
                node = node->next;
                cur = cur->next;
            }
            node = res;
            cur = head;
            while (node) {
                node->random = m[cur->random];
                node = node->next;
                cur = cur->next;
            }
            return res;
        }
    };
    

    相关文章

      网友评论

        本文标题:138. 复制带随机指针的链表

        本文链接:https://www.haomeiwen.com/subject/cbgdiftx.html