博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客OJ:复杂链表的复制
阅读量:4059 次
发布时间:2019-05-25

本文共 670 字,大约阅读时间需要 2 分钟。

哈希:

/*struct RandomListNode {    int label;    struct RandomListNode *next, *random;    RandomListNode(int x) :            label(x), next(NULL), random(NULL) {    }};*/class Solution {public:   map
m;vector
v;RandomListNode* solve(RandomListNode* p){ if(p == NULL) return NULL; if(m[p] == 0){ int L = v.size(); RandomListNode t(p->label); v.push_back(t); m[p] = L+1; // m : L+1 v[L].next = solve(p->next); v[L].random = solve(p->random); return &v[L]; }else{ return &v[m[p]-1]; }}RandomListNode* Clone(RandomListNode* pHead){ RandomListNode* ans = solve(pHead); return ans;}};

转载地址:http://xfwji.baihongyu.com/

你可能感兴趣的文章
C++类、结构体、函数、变量等命名规则详解
查看>>
【数据结构周周练】007顺序结构实现完全二叉树操作- 求编号i与j最近公共祖先结点
查看>>
C++ goto语句详解
查看>>
【数据结构周周练】008 二叉树的链式创建及测试
查看>>
【数据结构周周练】009 二叉树的先序、中序、后序遍历(递归算法实现)
查看>>
【数据结构必备基本知识】递归与迭代的联系、区别与优缺点对比详解
查看>>
【数据结构周周练】010 递归算法实现二叉树的创建与遍历
查看>>
【数据结构周周练】011 非递归算法实现二叉树的遍历
查看>>
【数据结构周周练】012 利用队列和非递归算法实现二叉树的层次遍历
查看>>
【数据结构周周练】013 利用栈和非递归算法求二叉树的高
查看>>
【数据结构周周练】014 利用栈和非递归算法求链式存储的二叉树是否为完全二叉树
查看>>
【数据结构周周练】015 利用递归算法创建链式存储的二叉树并转换左右孩子结点
查看>>
【数据结构周周练】016 利用递归算法及孩子兄弟表示法创建树、遍历树并求树的深度
查看>>
【数据结构周周练】017 利用递归算法及孩子兄弟表示法创建森林、遍历森林并求森林的叶子结点个数
查看>>
【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件
查看>>
【数据结构周周练】018 利用递归算法及中序遍历将二叉树线索化并遍历
查看>>
【数据结构周周练】019 利用递归算法创建二叉排序树并遍历
查看>>
【数据结构周周练】020 二叉排序树的排序与迭代查找
查看>>
【数据结构周周练】035 利用递归判断一棵二叉树是否为二叉排序树
查看>>
【数据结构周周练】021 求某一个数据在二叉排序树中的层数
查看>>