我有一個二叉搜索樹。我知道如何使用搜索屬性進行搜索。但我的任務是在不使用搜索屬性的情況下搜索樹(也就是說,在二叉樹中搜索)這是我必須搜索的方式。在預購中搜索遍歷方式
。如果您發現當前節點中的值返回它。
。否則在右邊搜索。如果沒有在右邊找到,則在左邊搜索
。如果在整個樹中找不到,則返回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
值。 (不在左邊搜索)。如何解決這個問題?