0
我一直在努力,它返回指示是否正在搜索的价值在树中的存在与否,什么是错在这段代码的布尔值BST搜索方法?但是,返回true后,控制权又回到:else if block.Can任何人都可以告诉我我做错了什么?BST搜索方法不返回预期的结果
帮助将是非常appreciated.Thanks提前!
public class Node
{
public int Value { get; set; }
public Node Left { get; set; }
public Node Right { get; set; }
public Node(int value, Node left, Node right)
{
Value = value;
Left = left;
Right = right;
}
}
public class BinarySearchTree
{
public static bool Search(Node root, int value)
{
if (root!=null)
{
if (root.Value == value)
{
return true;
}
else if (root.Value < value)
{
Search(root.Right, value);
}
else
{
Search(root.Left, value);
}
}
return false;
}
public static void Main(string[] args)
{
Node n1 = new Node(1, null, null);
Node n3 = new Node(4, null, null);
Node n2 = new Node(2, n1, n3);
bool flag = Search(n2, 4);
//flag should be true
Console.WriteLine("************* " + flag);
Console.ReadKey();
}
}
什么错误!非常感谢 !! – Dev