码迷,mamicode.com
首页 > 编程语言 > 详细

九章算法面试题61 克隆图

时间:2015-05-13 10:28:01      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:图论   leetcode   九章算法   lintcode   面试题   

九章算法官网-原文网址

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`是相邻点,建立克隆边。

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


九章算法面试题61 克隆图

标签:图论   leetcode   九章算法   lintcode   面试题   

原文地址:http://blog.csdn.net/jiuzhang_ninechapter/article/details/45681745

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!