【问题标题】:Tree Traversal and check for a specific value in Java树遍历并检查 Java 中的特定值
【发布时间】:2018-12-24 14:52:44
【问题描述】:

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

TreeNode 类有,

T value;  
BTree<T> left, right; 

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

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

我需要实现这个方法,也许我必须使用递归的方式。

【问题讨论】:

    标签: java data-structures tree-traversal


    【解决方案1】:

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

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多