Develop/Algorithm
treeDFS - 깊이 우선 탐색 알고리즘
by jaeyoungb
2022. 10. 25.
import java.util.*;
public class Solution {
public ArrayList<String> dfs(tree node) {
ArrayList<String> values = new ArrayList<>();
values.add(node.getValue());
if(node.getChildrenNode() != null) {
for(int i = 0; i < node.getChildrenNode().size(); i++) {
ArrayList<String> curList = dfs(node.getChildrenNode().get(i));
values.addAll(curList);
}
}
return values;
}
public static class tree {
private String value;
private ArrayList<tree> children;
public tree(String data) {
this.value = data;
this.children = null;
}
public tree addChildNode(tree node) {
if(children == null) children = new ArrayList<>();
children.add(node);
return children.get(children.size() - 1);
}
public String getValue() { //현재 노드의 데이터를 반환
return value;
}
public ArrayList<tree> getChildrenNode() {
return children;
}
}
}