我有一个二叉搜索树。我知道如何使用搜索属性进行搜索。但我的任务是在不使用搜索属性的情况下搜索树。(比如说,在二叉树中搜索)这就是我必须搜索的方式。
1 . 如果您在当前节点中找到该值,则返回它。
2 . 否则在右边搜索。如果在右边没有找到,那么在左边搜索
3 . 如果在整个树中未找到,则返回 null。
这是我尝试过的。
public Node search(int val)
{
Node target = this;
if(target.getVal() == val)
return this;
else if(target.getRight() == null && target.getLeft() == null)
return null;
if(target.getRight() != null)
{
return target.getRight().search(id);
}
if(target.getLeft() != null)
{
return target.getLeft().search(id);
}
return null;
}
我的代码的问题是,如果存在正确的孩子并且在正确的地方找不到 val,我就会得到null
价值。(不在左侧搜索)。如何解决这个问题?