在整个二叉搜索树中搜索

时间:2018-05-22 12:22:01

标签: 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);
    }
}

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

注意:排序不是基于年份,所以我必须从整个树中搜索。我也希望打印方法,而不是返回节点。

1 个答案:

答案 0 :(得分:2)

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

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