如何在二叉树中找到最小的键?如果它是一个二叉搜索树,最小值将位于最左侧,最大值位于最右侧(如果我没有被误解),但二叉树没有这种排序。
我似乎无法想出解决这个问题的好方法。如果有人可以帮忙的话会很棒:)
答案 0 :(得分:1)
这个问题可能最容易以递归方式解决。
这里有一些伪代码:
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)
}