• 剑指offer 复杂链表的复制 (有向图的复制)


    时间复杂度O(3N)


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    /*
    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 NULL;
            RandomListNode *result,*cur,*tmp;
            cur=pHead;
            while(cur)//每个节点 后面复制一个自己
            {
                tmp=new RandomListNode(cur->label);
                tmp->next=cur->next;
                cur->next=tmp;
                cur=tmp->next;
            }
            cur=pHead;
            tmp=cur->next;
            while(cur)//复制random连接
            {
                if(cur->random!=NULL)
                    tmp->random=cur->random->next;
                cur=tmp->next;
                if(cur!=NULL)//链表尾部的处理
                    tmp=cur->next;
            }
            //拆分两个表
            cur=pHead;
            result=cur->next;
            tmp=result;
            while(cur)
            {
                cur->next=tmp->next;
                cur=cur->next;
                if(cur!=NULL)//链表尾部的处理
                {
                    tmp->next=cur->next;
                    tmp=tmp->next;
                }
            }
            return result;
        }
    };

  • 相关阅读:
    Zabbix通过进程名监控进程状态配置详解
    kibana 统计field所有值百分比
    使用Logstash filter grok过滤日志文件
    python 修改文件内容
    清理elasticsearch的索引
    zabbix3.2.1安装graphtrees插件
    snmpwalk用法
    Zabbix通过SNMPv2监控DELL服务器的硬件信息
    zabbix上的宏(macro)介绍
    解决TeamViewer无法按给定网络地址联系伙伴
  • 原文地址:https://www.cnblogs.com/zhxshseu/p/5285129.html
Copyright © 2020-2023  润新知