zoukankan      html  css  js  c++  java
  • [LeetCode]复制带随机指针的链表

    题目

     

    代码

    /*
    // Definition for a Node.
    class Node {
    public:
        int val;
        Node* next;
        Node* random;
    
        Node() {}
    
        Node(int _val, Node* _next, Node* _random) {
            val = _val;
            next = _next;
            random = _random;
        }
    };
    */
    class Solution {
    public:
        Node* copyRandomList(Node* head) {
            if(head==nullptr)
                return nullptr;
            auto originPtr=head;
            Node* newHead=new Node(head->val,nullptr,nullptr);
            auto ptr=newHead;
            //先深拷贝结点
            while(originPtr->next!=nullptr)
            {
                auto node=new Node(originPtr->next->val,nullptr,nullptr);
                ptr->next=node;
                ptr=ptr->next;
                originPtr=originPtr->next;
            }
            originPtr=head;
            ptr=newHead;
            //复制随机指针
            while(originPtr!=nullptr)
            {
                //当前结点有随机指针
                if(originPtr->random!=nullptr)
                {
                    auto tempOld=head;
                    auto tempNew=newHead;
                    while(tempOld!=nullptr)
                    {
                        if(tempOld==originPtr->random)
                        {
                            ptr->random=tempNew;
                            break;
                        }else
                        {
                            tempOld=tempOld->next;
                            tempNew=tempNew->next;
                        }
                    }
                }
                originPtr=originPtr->next;
                ptr=ptr->next;
            }
            return newHead;
        }
    };
  • 相关阅读:
    TinyOS功率编程指南
    深度学习入门资料
    通信常识
    CTF入门
    前端开发工具之服务器选择
    Spring
    NoSQL -- MongoDB
    NoSQL -- Redis
    mysql alter table修改表结构添加多个字段的几个写法
    gongle 访问助手安装
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053560.html
Copyright © 2011-2022 走看看