首页 > 其他 > 详细

餐馆最短距离

时间:2020-02-06 09:43:53      阅读:59      评论:0      收藏:0      [点我收藏+]

有个N叉树是个大食堂的地图。节点有的是餐馆,有的不是,在输入里面用boolean表示了。每个父节点到子节点的距离都是一。你作为一个吃货,从根节点出发,要去所有的餐馆尝尝,需要的最短路径是多少。
楼主DFS返回两个量,一个是这个节点为根的树要吃完需要的走多长的路,另一个是一个flag表示这个子树里面有没有餐馆。

这个题有点类似蠡口865,每个node都返回{b, d}
b--本子树是否包含餐馆
d-- 从该点遍历其子树内所有餐馆再回到自身所需要的距离d
做后序遍历,也就是先得到左右子树的返回值left, right
如果该子树包含餐馆,本Node d += (left.d + 2)(如果有餐馆) + (right.d + 2)(如果有餐馆)
b = left.b || right.b || 自身是否是餐馆

餐馆最短距离

原文:https://www.cnblogs.com/beiyeqingteng/p/12267551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!