繁体   English   中英

如果每个节点是其下所有节点的权重之和,则在树中找到最大权重节点。

[英]Find the maximum weight node in a tree if each node is the sum of the weights all the nodes under it.

例如,这就是树。

            10
     12           -1
  5       1     1     -2
2   3  10   -9

如何找到最大值的节点?

考虑到上述问题,您需要遍历整个树。 请参见下面的证明。

遍历整个树应该是一个相当琐碎的过程。

我们需要遍历整个树的证明:

假设我们无需遍历整棵树就能确定最大树的哪一侧。

给定任何树,其中最大节点在左侧。 称为最大x

选择右侧的叶节点之一。 将2个孩子添加到其中: x+1-x-1

由于x+1-x-1 = 0 ,将它们相加不会更改我们添加到其上的叶子的总和,因此也不会更改树中任何其他节点的总和。

由于可以将其添加到树中的任何叶子上,并且不会影响总和,因此我们需要遍历整棵树以找出是否在任何地方发生。

因此,我们可以确定最大值在树的哪一侧而不遍历整个树的假设是不正确的。

因此,我们需要遍历整个树。

通常,您需要遍历整个树。 如果树中的值不受约束(例如,所有非负值,但在您的示例中为负值),则节点中的值不会告诉您其下面的各个值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM