树的路径长度是指“从树根到每一个节点的路径长度的总和”,相同节点个数下,完全二叉树就是这种路径长度最短的二叉树,注意这是对于二叉树而言。
注意上述是说从树根到每一个节点的路径长的总和,如下图
该树的路径长度为:(AB)+(AB)+(BD)+(AC)+(AC)+(CE)+(AC)+(CF)
然而事实上,如果单说路径长度而不带权,则权重都是相同的,所以上述式子不必写的那么麻烦。
那如果是带权路径长度该如何计算呢?
带权路径长度 = ∑(节点的权*节点的深度)
以上图为例,只对D节点进行说明,其他都一样
D节点的带权路径长度为 D的权*D的深度
,假设深度从0开始算起,那么A的深度为0,B的为1,D的为2。
那么结果就为:D的权*2
,而不是A的权+B的权+D的权
而该二叉树的带权路径长度则是每一个节点这样加起来即可
//值得注意的地方就是要区别于哈夫曼树的带权路径长度