2016-10-21 4 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 является передачей по ссылке, поэтому лучше сделать функцию void.

+0

У этого дерева нет задних кромок –

+0

Вы можете добавить класс Node? – ugurdonmez