我有一个二叉搜索树。我知道如何使用搜索属性进行搜索。但我的任务是在不使用搜索属性的情况下搜索树(也就是说,在二叉树中搜索)这是我必须搜索的方式。在预购中搜索遍历方式
。如果您发现当前节点中的值返回它。
。否则在右边搜索。如果没有在右边找到,则在左边搜索
。如果在整个树中找不到,则返回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
值。 (不在左边搜索)。如何解决这个问题?