redoing tree as obj tree, not array

master
Matthew Huntington 3 years ago
parent eaba0d124c
commit 4119483adf

@ -30,40 +30,27 @@
//return results.concat(breakDown(nextNum))
//}
const breakDown = (num)=>{
const results = [];
let firstResult = num - 3;
if(firstResult > 3){
firstResult = breakDown(firstResult);
const breakDown = (node)=>{
if(node.value > 3){
node.left = { value: 3 }
node.right = breakDown({value:node.value-3})
}
const firstArray = [3, firstResult];
results.push(firstArray);
let secondResult = num - 2;
if(secondResult > 3){
secondResult = breakDown(secondResult);
return node;
}
const secondArray = [2, secondResult];
results.push(secondArray);
const tree = breakDown({value:8});
return results;
}
const result = breakDown(7);
console.dir(result, {depth:null});
console.log(tree);
const traverse = (tree)=>{
let result = '';
for(let node of tree){
if(Number.isInteger(node)){
result += node + ', ';
const getLeaves = (node, leafArray)=>{
if(node.left === undefined && node.right === undefined){
leafArray.push(node.value);
} else {
result += traverse(node);
}
getLeaves(node.left, leafArray)
getLeaves(node.right, leafArray)
}
return result;
return leafArray;
}
const flattenedTree = traverse(result);
console.log(flattenedTree);
const leaves = getLeaves(tree, []);
console.log(leaves);

Loading…
Cancel
Save