九章算法面试题61 克隆图

时间:2015-05-13 10:28:01   收藏:0   阅读:187

九章算法官网-原文网址

http://www.jiuzhang.com/problem/61/


题目

给出一个图,并且给出图的起始节点,知道这个图的节点的定义,要求克隆这个图,返回克隆图的起始节点。


在线测试本题

http://www.lintcode.com/en/problem/clone-graph/


解答


这一类克隆一个图的题目,我们都可以分为两步。

第一步: 克隆点。 只需要用广度优先搜索的方法从根节点出发去遍历一遍图,并且同时克隆出每个点A相应的克隆点A`保存在map里面,所以map里面存储每个点的对应克隆点。

第二步: 克隆边。再用广度优先搜索的方法遍历一遍图,并且这个时候由于知道一个点A的相邻点点B,而map里面存储了A的克隆点A`,B的克隆点B`, 所以这个时候也知道A`和B`是相邻点,建立克隆边。

这样通过这两个步骤就可以对一个图进行完整的克隆。


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!