2016-10-21 124 views
0

我有一棵树。该树中的一些节点有一个值。我想找到具有该值的节点并将其添加到堆栈。DFS:将具有特定值的节点添加到堆栈(java)

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

我们看到的代码看起来很直观。 e.num的类型是什么? (e.num!= 0)检查可能会失败。 – uoyilmaz

回答

0

你应该跟踪访问节点。如果树具有后端,您的代码将会得到异常。而且Java是通过引用传递的,所以最好使函数无效。

+0

这棵树没有后边缘 –

+0

你可以添加Node类吗? – ugurdonmez