我正在为树添加一个递归方法,将所有节点添加到数组列表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
答案 0 :(得分:2)
我认为基本问题是当你这样做时:
child.getAllNodes();
您没有使用该方法的响应......
也许你打算这样做?
names.addAll(child.getAllNodes());