재귀를 이용해 알 수 없는 개수의 Children 요소를 가진 Node 객체의 특정 값(value)만 저장하는 알고리즘
let dfs = function (node) {
let values = [node.value];
// 노드의 value를 배열에 저장
node.children.forEach((n) => {
values = values.concat(dfs(n));
});
// 노드의 children의 각 요소들을 재귀시켜
// (children의 value값만 values에 저장됨)
// values 배열에 합친 후 리턴
return values;
};
let Node = function (value) {
this.value = value;
this.children = [];
};
Node.prototype.addChild = function (child) {
this.children.push(child);
return child;
};