我有一个BinaryTree类,其中包含自定义类型TreeNode的根节点。
TreeNode类具有
T value;
BTree<T> left, right;
BTree是在BinaryTree中实现的接口。在该二叉树类中,有一种方法可以检查树是否在节点中包含特定值。
@Override
public boolean contains(T value) {
return false;
}
我需要实现此方法,也许我必须使用递归方法。
答案 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);
}