Algorithm 在无额外存储的二叉搜索树中查找第k个最大路径和

Algorithm 在无额外存储的二叉搜索树中查找第k个最大路径和,algorithm,binary-search-tree,Algorithm,Binary Search Tree,有没有任何方法可以在不使用任何其他存储(如数组)的情况下,在二元搜索树中找到所有可能的完整路径和中的第k个最大值?最初我认为,如果我在增加指针的同时继续从右侧查找路径的总和,每个新的总和都是最小的,而前一个总和(最初的总和是无限的),当计数达到k时就会爆发。然而,我刚刚发现,虽然最大叶值可以自然地从右向左排序,但总和不必如此。所以这种方法行不通。我该怎么做呢?如果你能计算出k-最小值,那么你就可以用同样的算法计算出k-最大值。你所需要做的就是从右到左做事情,而不是从左到右

有没有任何方法可以在不使用任何其他存储(如数组)的情况下,在二元搜索树中找到所有可能的完整路径和中的第k个最大值?最初我认为,如果我在增加指针的同时继续从右侧查找路径的总和,每个新的总和都是最小的,而前一个总和(最初的总和是无限的),当计数达到
k
时就会爆发。然而,我刚刚发现,虽然最大叶值可以自然地从右向左排序,但总和不必如此。所以这种方法行不通。我该怎么做呢?

如果你能计算出k-最小值,那么你就可以用同样的算法计算出k-最大值。你所需要做的就是从右到左做事情,而不是从左到右