zoukankan      html  css  js  c++  java
  • 复杂链表的复制

    题目描述

    输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
     
     1 /*
     2 struct RandomListNode {
     3     int label;
     4     struct RandomListNode *next, *random;
     5     RandomListNode(int x) :
     6             label(x), next(NULL), random(NULL) {
     7     }
     8 };
     9 */
    10 class Solution {
    11 public:
    12     RandomListNode* Clone(RandomListNode* pHead)
    13     {
    14         if(pHead == NULL)
    15             return NULL;
    16 
    17         RandomListNode* p = pHead;
    18         std::map<int,RandomListNode*> mm;
    19         while(p!= NULL)
    20         {
    21             RandomListNode* ptem = new RandomListNode(p->label);
    22             mm[p->label] = ptem;
    23             p = p->next;
    24         }
    25         p = pHead;
    26         while(p != NULL)
    27         {
    28             if(p->next != NULL)
    29             mm[p->label]->next = mm[p->next->label];
    30             if(p->random != NULL)
    31             mm[p->label]->random = mm[p->random->label];
    32             p = p->next;
    33         }
    34         return mm[pHead->label];
    35     }
    36 };
  • 相关阅读:
    查找整数
    寒假作业3
    寒假作业2
    寒假作业1
    秋季学期总结
    对自己影响最深的三位老师
    自我介绍
    jquery学习笔记
    素材网站
    转:vim模式下报错E37: No write since last change (add ! to override)
  • 原文地址:https://www.cnblogs.com/xiaoyesoso/p/5156100.html
Copyright © 2011-2022 走看看