对于树的最远两节点的距离的理解

定义:n个节点的树,任选一个节点V0,找到距离它最远的节点V1,再找距离V1最远的节点V2,edge(V1,V2) 即为树的的最长枝.

理解:

Condition 1: edge(V0,V1)若经过root,则edge(root,V1)即为距离root最长,或次长的边.

因此,再从V1出发,找距离V1最远的节点V2,edge(V1,V2)必定通过root,所以可以看成是找距离root最远的节点V2(不能回头搜索V1),

所以树的直径为:edge(V1,root)+edge(root,V2)  且V1,V2必定为叶子,如果不是叶子,那它必定还能向下搜索,从而存在更长的边.

Condition 2: edge(V0,V1)若不经过root,则它是root的以V0为根节点的子树,所以可以看成找距离V0最远的节点V2(不回头搜索V1),

所以树的直径为:edge(V1,V0)+edge(V0,V2)   且V1,V2必定为叶子.

 

若理解有误,请告诉我.

 

典型题目:大臣的旅费
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值