zoukankan      html  css  js  c++  java
  • 面试题35. 复杂链表的复制

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

     1 class Solution {
     2 public:
     3     Node* copyRandomList(Node* head) 
     4     {
     5         if (head == NULL)
     6         {
     7             return head;
     8         }
     9         Node *cur = head;
    10         Node *copy = NULL;
    11         Node *temp =    NULL;
    12 
    13         while (cur != NULL)
    14         {
    15             temp = cur->next;               //保存原结点的下一个结点
    16             copy = new Node(cur->val);      //创建新结点
    17             copy->next = cur->next;         //复制结点的下一个结点为原结点下一个结点
    18             cur->next = copy;               //原结点下一个结点是复制结点
    19             cur = temp;                     //跳到下一个原结点继续遍历
    20         }
    21         cur = head;
    22         copy = NULL;
    23         // while (cur != NULL)
    24         // {
    25         //     copy = cur->next->next;         //原结点下一个结点
    26         //     //当前复制结点,找到下一个复制结点
    27         //     cur->next->next = (copy != NULL)? copy->next:NULL;    
    28         //     //当前复制结点为当前原结点的自由结点的下一个结点  A-a-B-b-C-c-null;
    29         //     cur->next->random = (cur->random != NULL)? cur->random->next:NULL;
    30         //     cur = copy;
    31         // }
    32         while(cur != NULL)
    33         {
    34             copy = cur->next;
    35             if(cur->random)
    36                 copy->random = cur->random->next;
    37             else
    38                 copy->random = NULL;
    39             cur=copy->next;
    40         }
    41         cur = head;
    42         copy = head->next;
    43         Node *copy_cur = head->next;
    44         while(cur != NULL)
    45         {
    46             cur->next = cur->next->next;
    47             cur = cur->next;
    48             if (copy_cur->next != NULL)
    49             {
    50                 copy_cur->next = copy_cur->next->next;
    51                 copy_cur = copy_cur->next;
    52             }
    53         }
    54         return copy;
    55     }
    56 };
  • 相关阅读:
    HZOJ 通讯
    HZOJ 礼物
    HZOI 可怜与超市
    高二小假期集训—D5
    [BZOJ3566][SHOI2014]概率充电器
    [***]HZOI20190714 T2熟练剖分
    20190714(又一次翻车……)
    HZOI20190714 T3建造游乐场
    模板—慢速乘
    模板—十进制快速幂
  • 原文地址:https://www.cnblogs.com/Tavi/p/12915698.html
Copyright © 2011-2022 走看看