DFS:将具有特定值的节点添加到堆栈(java)

时间:2016-10-21 12:10:35

标签: java algorithm data-structures tree depth-first-search

我有一棵树。此树中的某些节点具有值。我想找到具有该值的节点并将其添加到堆栈中。

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似乎没有被添加到堆栈中。相反,堆栈变回空白。

1 个答案:

答案 0 :(得分:0)

你应该跟踪被访问的节点。如果树具有后沿,则代码将获得异常。此外,Java是通过引用传递的,因此最好使函数无效。