类似于子集和的动态编程解决方案......
对于每个节点,计算叶子集的可达到的总和的集合,并且对于每个可达到的总和,记住最后一个贡献孩子和前一个总和。您可以使用此信息重建生成总和的集合。
在对树进行后序遍历时,您可以仅使用其子节点上的信息为每个节点计算此集。
当你到达根部时,选择可达到的最大总和并重建产生它的叶子。