public double FindMin()
{
Node current = root;
while (!(current.left == null))
current = current.left;
return current.Data;
}
public double FindMax()
{
Node current = root;
while (!(current.right == null))
current = current.right;
return current.Data;
}
这是我的二进制搜索树函数的迭代解决方案,用于在C#中查找树中的最小值和最大值。我想将其更改为递归,但代码似乎不在此处
public double RecurfindMax(Node current)
{
//current = root;
if (current.left == null)
{
return -1;
}
else
//if (current.left != null)
{
return RecurfindMax(current = current.left);
//return current;
}
那么你能告诉我这段代码有什么问题吗?
答案 0 :(得分:2)
您可能需要检查How to find height of BST iteratively?是否存在类似问题;那里的解决方案应该具有指导意义。
此外,对于递归解决方案,它应该会引发一个永远不会认为是正确孩子的红旗。
答案 1 :(得分:0)
private Node FindMinRecHelper(Node current)
{
if (current.LeftNode == null)
{
return current;
}
else
{
return FindMinRecHelper(current.LeftNode);
}
}
public void FindMinRec()
{
Node current = FindMinRecHelper(root);
Console.WriteLine(current.Data);
}
这里是RECURSIVE FIND MIN的真实实现。