递归查找函数二叉树

时间:2016-04-04 22:43:54

标签: java search recursion binary-tree

我在执行此功能时遇到一些问题: public boolean find(Integer i)

起初我试过了:

public boolean find(Integer i) {
    Node currNode = root;

    if (currNode.getData() != i) {
        return false; // we didnt find it
    }
    if (currNode.getLeft() != null && find(currNode.getLeft().getData())) {
        return true;
    }
    if (currNode.getRight() != null && find(currNode.getRight().getData())) {
        return true;
    }
    else 
        return false;
}

但这只是在我的测试用例中给了我false。我想知道如何在二叉树中找到特定数据,如果在二叉树中找到输入数据,则返回true

1 个答案:

答案 0 :(得分:0)

根据您提供的代码,我猜这更像是您想要的:

public boolean find(Integer i) {

    if (getData().intValue() == i.intValue()) {
        return true; // we found it
    }

    if (getLeft() != null && getLeft().find(i)) {
        return true;
    }

    if (getRight() != null && getRight().find(i)) {
        return true;
    }

    return false;
}

如果没有,请提供更多解决方案代码,以帮助指导更好的答案。