链表--复制带随机指针的链表

目录

题号

思路

    如果是普通链表的复制,则只需要遍历一遍,依次拼接上当前节点即可

    由于存在random指针指向另一个节点,则有两种可选方式

        从原链表中创建

        从新链表中创建

    若从原链表创建,则需要顺着当前节点的random获取到对应节点,但是random.next可能还会指向新的节点,故会造成创建出来的节点保留着对原链表节点的引用,有引用则可能会相互影响

    若从新节点创建,则有可能random指向的节点尚未创建

    故考虑将每个节点copy一份

    为了降低空间复杂度,可考虑直接拼接到原数组上

    拷贝后的原节点的next为copy节点

    拷贝后的原节点的random.next即copy节点的random

实现

你可能感兴趣的:(链表--复制带随机指针的链表)