博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[CareerCup] 13.7 Node Pointer 节点指针
阅读量:6278 次
发布时间:2019-06-22

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

 

13.7 Write a method that takes a pointer to a Node structure as a parameter and returns a complete copy of the passed in data structure. The Node data structure contains two pointers to other Nodes.

 

在这道题让我们通过一个节点指针来复制整个数据结构,节点类Node中包含两个节点指针,我们需要用哈希表来建立原数据结构中每一个节点的地址到相对应的新结构中的地址,这样我们就可以在用DFS的时候知道哪些节点我们已经拷贝过了,就可以直接跳过。通过这种方式来标记访问过的节点可以不用在节点内部存储。拷贝过程如下所示:

 

class Node {public:    Node *ptr1;    Node *ptr2;};typedef unordered_map
NodeMap;class Solution {public: Node* copy_structure(Node *root) { NodeMap m; return copy_recursive(root, m); } Node* copy_recursive(Node *cur, NodeMap &m) { if (cur == nullptr) return nullptr; auto it = m.find(cur); if (it != m.end()) return it->second; Node *node = new Node; m[cur] = node; node->ptr1 = copy_recursive(cur->ptr1, m); node->ptr2 = copy_recursive(cur->ptr2, m); return node; }};

 

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

你可能感兴趣的文章
Flex&Bison手册
查看>>
solrCloud+tomcat+zookeeper集群配置
查看>>
/etc/fstab,/etc/mtab,和 /proc/mounts
查看>>
Apache kafka 简介
查看>>
socket通信Demo
查看>>
技术人员的焦虑
查看>>
js 判断整数
查看>>
建设网站应该考虑哪些因素
查看>>
mongodb $exists
查看>>
js实现页面跳转的几种方式
查看>>
sbt笔记一 hello-sbt
查看>>
常用链接
查看>>
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>