美文网首页
复杂链表的复制

复杂链表的复制

作者: Crazy_Bear | 来源:发表于2020-07-29 07:49 被阅读0次
  • 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
  • 在每个结点后面复制一个与其相同的结点,操作之后删除原节点
  • 原结点如果存在nullptr,则其复制结点也设置为nullptr
  • C++ 代码
/*
struct RandomListNode {
    int label;
    struct RandomListNode *next, *random;
    RandomListNode(int x) :
            label(x), next(NULL), random(NULL) {
    }
};
*/
class Solution {
public:
    RandomListNode* Clone(RandomListNode* pHead)
    {
        if(!pHead) return nullptr;
         
        RandomListNode* p = pHead;
        while(p){
            RandomListNode* tmp =new RandomListNode(p->label);
            tmp->next = p->next;
            p->next = tmp;
            p = tmp->next;
        }
         
        p =  pHead;
        RandomListNode* q = nullptr;
        while(p){
            q = p->next;
            if( p->random ) 
            q->random = p->random->next;
            p = q->next;
        }
         
         
        RandomListNode* res = pHead->next;
        p = q = pHead;
        while(p){
            q = p->next;
            p->next = q->next;
            p=p->next;
            if(p)
            q->next = p->next; 
        }
        return res;
    }
};

相关文章

  • 面试题35. 复杂链表的复制

    复杂链表的复制 题目描述 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了...

  • LeetCode:复制带随机指针的链表

    面试题35. 复杂链表的复制 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点...

  • 复杂链表的复制

    时间复杂度为O(n),需要额外空间O(n) 时间复杂度O(n),无额外空间

  • 复杂链表的复制

    题目描述:有一个复杂链表,其结点除了有一个Next指针指向下一个结点外,还有一个random指向链表中的任意结点或...

  • 复杂链表的复制

    题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),...

  • 复杂链表的复制

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)...

  • 复杂链表的复制

    题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点...

  • 复杂链表的复制

    复杂链表的复制 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个...

  • 复杂链表的复制

    输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。返回一个...

  • 复杂链表的复制

网友评论

      本文标题:复杂链表的复制

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