【题目/链表训练】链表

一、随机链表的复制

class Solution {
public:
    Node* copyRandomList(Node* head) {
        map<Node*, Node*> NodeMap;
        Node* copyhead = nullptr, * copytail = nullptr;
        Node* cur = head;
        while (cur)  //遍历原链表
        { //深拷贝
            if (copytail == nullptr)
            {
                copyhead = copytail = new Node(cur->val);
            }
            else
            {
                copytail->next = new Node(cur->val);
                copytail = copytail->next;
            }
            //原节点和拷贝节点map kv存储,建立映射关系
            NodeMap[cur] = copytail;
            cur = cur->next;
        }


        //处理random
        cur = head;
        Node* copy = copyhead;
        while (cur)
        {
            if (cur->random == nullptr)
            {
                copy->random = nullptr;
            }
            else
            {
                copy->random = NodeMap[cur->random];
            }
            cur = cur->next;
            copy = copy->next;
        }
        return copyhead;
    }
};

相关推荐

  1. leetcode相关题目

    2024-07-18 09:34:04       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 09:34:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 09:34:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 09:34:04       57 阅读
  4. Python语言-面向对象

    2024-07-18 09:34:04       68 阅读

热门阅读

  1. 【C++】C++ 文件模式标志

    2024-07-18 09:34:04       23 阅读
  2. nginx域名跳转到另一个域名

    2024-07-18 09:34:04       22 阅读
  3. ios 设置行距和获取文本行数

    2024-07-18 09:34:04       21 阅读
  4. (86)组合环路--->(01)RGB值

    2024-07-18 09:34:04       18 阅读
  5. 详细说一下axios的特点

    2024-07-18 09:34:04       22 阅读
  6. log4j.appender.Logfile.File=./logs/its_log

    2024-07-18 09:34:04       20 阅读
  7. 七、python函数基础

    2024-07-18 09:34:04       20 阅读
  8. Junit单元测试常用断言

    2024-07-18 09:34:04       25 阅读
  9. app自动化测试缓存问题如何解决?

    2024-07-18 09:34:04       20 阅读
  10. 【Go系列】Go语言的测试

    2024-07-18 09:34:04       21 阅读