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

Tree 如何找到bst中任意两个节点之间的最大路径和?,tree,max,binary-search-tree,nodes,Tree,Max,Binary Search Tree,Nodes,如何在二叉搜索树中找到任意两个元素之间的最大可能路径和? 我不是说任何两个叶节点。此问题包括所有节点。 路径和是指路径中所有数据元素的和。使用伪代码: Set maxSum = MINVALUE TreeMaxSum (tree) maxLeft = TreeMaxSum(tree->left) maxRight = TreeMaxSum(tree->right) maxSum = max(maxSum, maxLeft+maxRight+tree->val

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

使用伪代码:

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)

当然,您需要注意常见的边缘情况和“空叶”值…

您能描述路径吗?你是说“父链”吗?路径是指从一个节点到另一个节点的距离。路径和是指路径中数据元素的和。也许我误解了这个问题,但是路径是否只需要包含唯一的节点,因为如果不是,答案将是无限的。如果它是唯一的,那么最大值不等于最小值吗?是的,路径只需要包含唯一的节点。对于任何两个节点,我们只有一条路径。这里我们需要找到bst中此类唯一路径的最大值。