以树方法打印所有节点

时间:2015-10-17 00:39:05

标签: java debugging recursion

我正在为树添加一个递归方法,将所有节点添加到数组列表Latin1。此方法无法将叶节点(没有子节点的节点)添加到arraylist names

它只将根的根和直接子节点添加到数组列表中。我需要知道解决其他递归问题的错误。

names

其他代码:

private ArrayList<TreeNode> names = new ArrayList<>();
public ArrayList<TreeNode> getAllNodes(){

    //BASIS CASES:
    names.add(this);

    if(isLeaf()){
        names.add(this);
        return names;
    }

    //RECURSIVE CASES:
    for(TreeNode child : children){
        child.getAllNodes();
        names.add(child);

    }

    return names;
}

输出:

  

John Louis Sue

1 个答案:

答案 0 :(得分:2)

我认为基本问题是当你这样做时:

child.getAllNodes();

您没有使用该方法的响应......

也许你打算这样做?

names.addAll(child.getAllNodes());