【发布时间】:2012-10-03 15:34:42
【问题描述】:
有没有办法在不使用任何其他存储(如数组)的情况下,在二叉搜索树中找到所有可能的完整路径和中的第 k 个最大的?最初我认为,如果我在增加指针的同时继续从右侧找到路径的总和,每个新的总和都是最小值和前一个总和(最初总和是无限的),当计数达到 k .但是我刚刚发现,虽然最大叶值自然地从右到左排序,但总和不必如此。所以这个方法行不通。我该怎么做?
【问题讨论】:
标签: algorithm binary-search-tree
有没有办法在不使用任何其他存储(如数组)的情况下,在二叉搜索树中找到所有可能的完整路径和中的第 k 个最大的?最初我认为,如果我在增加指针的同时继续从右侧找到路径的总和,每个新的总和都是最小值和前一个总和(最初总和是无限的),当计数达到 k .但是我刚刚发现,虽然最大叶值自然地从右到左排序,但总和不必如此。所以这个方法行不通。我该怎么做?
【问题讨论】:
标签: algorithm binary-search-tree
如果您可以计算 k 最小,那么您可以使用相同的算法计算 k 最大。您需要做的就是从右到左而不是从左到右。
【讨论】: