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

how to find maximum path sum between any two nodes in a bst?

我们如何找到二叉搜索树中任意两个元素之间的最大可能路径和? 我不只是在谈论任何两个叶节点。这个问题包括所有节点。 路径总和是指路径中所有数据元素的总和。

使用伪代码:

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)

当然,您需要处理常见的边缘情况和 "empty leaf" 值...