2016-10-21 104 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