在Java中查找二叉树中的最小键

时间:2014-12-09 16:07:27

标签: java binary-tree

如何在二叉树中找到最小的键?如果它是一个二叉搜索树,最小值将位于最左侧,最大值位于最右侧(如果我没有被误解),但二叉树没有这种排序。

我似乎无法想出解决这个问题的好方法。如果有人可以帮忙的话会很棒:)

1 个答案:

答案 0 :(得分:1)

这个问题可能最容易以递归方式解决。

  • 找到左子树的最小键。
  • 您可以找到右侧子树的最小键。
  • 将前两个元素相互比较并与当前节点的元素进行比较,并返回3个元素中的最小元素。

这里有一些伪代码:

KeyType getSmallestKey (Node root)
{
    minLeft = MAX_VALUE
    minRight = MAX_VALUE
    if root.hasLeftChild
        minLeft = getSmallestKey(root.left)
    if root.hasRightChild
        minRight = getSmallestKey(root.right)
    return min (minLeft, minRight, root.getKey)
}