我有一棵树。此树中的某些节点具有值。我想找到具有该值的节点并将其添加到堆栈中。
private Stack<Integer> dfs(Node e, Stack stack) {
if(e.num != 0){
stack.push(e.num);
}
for(Node child : e.children){
dfs(child, stack);
}
return stack;
}
我的问题是相关的e.num似乎没有被添加到堆栈中。相反,堆栈变回空白。
答案 0 :(得分:0)
你应该跟踪被访问的节点。如果树具有后沿,则代码将获得异常。此外,Java是通过引用传递的,因此最好使函数无效。