JSFiddle - React, Tailwind, and code Playground
by tara5
JavaScript
function TreeNode(value, children) {
this.value = value;
this.children = children;
}
TreeNode.prototype.getChildren = function() {
return this.children;
}
TreeNode.prototype.getValue = function() {
return this.value;
}
var root = new TreeNode(1, [
new TreeNode(2, [
new TreeNode(5, [])
]),
new TreeNode(3, [
]),
new TreeNode(4, [
new TreeNode(6, [
new TreeNode(7, [])
])
])
]);
function traverse(node, callback) {
var children = node.getChildren();
callback(node);
while(children.length > 0) {
let memo = [];
for (let i = 0; i < children.length; i++) {
let child = children[i];
if (child.getChildren().length > 0) {
memo = memo.concat(child.getChildren());
}
callback(child);
}
children = memo;
}
}
traverse(root, function(node) {
console.log(node.getValue());
});