0

我有一个二叉树,其中节点(和根)保存 int vals,它的叶子包含代表价格的 vals。节点的 int vals 表示在计算中可以取其子树中的叶子数。我必须说出我能从这棵树上得到的最大价格总和是多少。

起初我想获取链表中的所有叶子,然后开始按其父值过滤它们,但这似乎不是最好的解决方案。

有任何想法吗?!

4

1 回答 1

0
int numberOfLeaves( Node n ){
    int intVal = 0;
    if( n.Left != null ){ intVal += numberOfLeaves(n.Left); }
    if( n.Right != null ){ intVal += numberOfLeaves(n.Right); }
    if( n.Left == null && n.Right == null ){ return 1; }
    return intVal;
}

对于最大的总和,如果我正确理解“最大总和”,只需将所有叶子推入一个列表并总结所有正价格。

于 2012-12-30T16:58:12.063 回答