算法训练第六十一天

剑指 Offer 35. 复杂链表的复制 - 力扣(LeetCode)

总结:今日这道题自己使用暴力方法结果是超时了,看完题解后觉得实在是太妙了!!!利用哈希表与递归(答案中说是回溯,个人理解是递归),利用哈希表记录已经创建了的节点,如果没有找到就直接新创建节点,找到了就直接返回哈希表记录的值,而哈希表的键值就是原来链表中的节点,哈希表中的键值和值值非常对应,就是两个不同链表中的同一节点。

代码:

cpp 复制代码
class Solution {
public:
    unordered_map<Node*,Node*> cachedNode;
    Node* copyRandomList(Node* head) {
        if(head == nullptr)
        return head;
        if(!cachedNode.count(head))
        {
            Node* headNew = new Node(head->val);
            cachedNode[head] = headNew;
            headNew->next = copyRandomList(head->next);
            headNew->random = copyRandomList(head->random);
        }
        return cachedNode[head];
    }
};
//太妙了!!!
//记得反复观看
相关推荐
行然梦实15 分钟前
论文阅读:《多目标和多目标优化的回顾与评估:方法和算法》
论文阅读·算法·机器学习·数学建模
castro22 分钟前
斐波那契堆:理论强者与现实挑战——深入解析高效优先队列的实现与局限
算法
go546315846526 分钟前
离散扩散模型在数独问题上的复现与应用
线性代数·算法·yolo·生成对抗网络·矩阵
惜鸟31 分钟前
PDF页眉页脚识别与去除方案
后端·算法
设计师小聂!1 小时前
力扣热题100-------74.搜索二维矩阵
算法·leetcode·矩阵
小O的算法实验室2 小时前
2025年ESWA SCI1区TOP,强化学习多目标灰狼算法MOGWO-RL+分布式混合流水车间调度,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
liulilittle3 小时前
备忘录设计模式 vs 版本设计模式
开发语言·c++·算法·设计模式
菜鸟555553 小时前
常用算法思想及模板
算法·dp·模板·分治·竞赛·算法思想
肆佰.3 小时前
c++ 派生类
数据结构·c++·算法
醉卧红尘的鱼3 小时前
最优估计准则与方法(5)加权最小二乘估计(WLS)_学习笔记
学习·算法