树遍历并检查Java中的特定值

时间:2018-12-24 14:52:45

标签: java data-structures tree-traversal

我有一个BinaryTree类,其中包含自定义类型TreeNode的根节点。

TreeNode类具有

T value;  
BTree<T> left, right; 

BTree是在BinaryTree中实现的接口。在该二叉树类中,有一种方法可以检查树是否在节点中包含特定值。

@Override
public boolean contains(T value) {
    return false;
}

我需要实现此方法,也许我必须使用递归方法。

1 个答案:

答案 0 :(得分:0)

是的,您需要递归搜索树。代码将如下所示:

public boolean contains(BTree<T> root, T value) {
    if (root == null) {
        return false;
    }
    if (root.getValue().equals(value)) {
        return true;
    }

    return contains(root.getLeft(), value) || contains(root.getRight(), value);
}

@Override
public boolean contains(T value) {
    return contains(this, value);
}