如何找到bst中任意两个节点之间的最大路径总和?

时间:2015-06-28 17:31:29

标签: tree max binary-search-tree nodes

如何在二叉搜索树中找到任意两个元素之间的最大路径和? 我不只是在讨论任何两个叶子节点。此问题包含所有节点。 通过路径求和,我指的是路径中所有数据元素的总和。

1 个答案:

答案 0 :(得分:0)

使用伪代码:

Set maxSum = MINVALUE

TreeMaxSum (tree)
   maxLeft = TreeMaxSum(tree->left)
   maxRight = TreeMaxSum(tree->right)
   maxSum = max(maxSum, maxLeft+maxRight+tree->value)
   return max(maxLeft, maxRight) + tree->value

TreeMaxSum(tree)

当然,你需要照顾通常的边缘情况和#34;空叶"值...