java - 在整个二叉搜索树中搜索

标签 java binary-tree binary-search-tree

我有一个方法,如果电影的标题与参数中的年份匹配,则打印电影的标题。

private void searchByYear(BTNode root, int year) {
    BTNode temp = root;
    if(temp == null)
        return;
    else if(temp.data.titleYear == year){
        System.out.println(temp.data.title);
    }
    else{
        searchByYear(temp.left, year);
        searchByYear(temp.right, year);
    }
}

问题:它打印一些电影,而不是全部。我认为问题应该出在递归调用中。

注意:排序不是按年份排序,所以我必须从整棵树中搜索。另外我希望该方法能够打印,而不是返回节点。

最佳答案

else if block 与 else block 合并,以便在执行检查后进行递归调用。

private void searchByYear(BTNode root, int year) {
    BTNode temp = root;
    if(temp == null)
        return;
    if(temp.data.titleYear == year){
        System.out.println(temp.data.title);
    }

    searchByYear(temp.left, year);
    searchByYear(temp.right, year);
 }

关于java - 在整个二叉搜索树中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50467552/

相关文章:

c++ - 计算树结构中叶子的索引

c++ - 二叉搜索树 C++

java - XmlJavaTypeAdapter 并阐明?

java - 用真实设备连接xampp localhost数据库

java - Hibernate 刷新速度不够快,无法捕获数据库异常

C++ 二叉搜索树插入函数

java - 用于依赖图的 Maven 服务

java - 从数组中逐行填充二叉树

c - 找出 BST 的叶子是否在同一层终止

C - 二分搜索树中 ")"之前应为 "*"