two paths and three paths

master
Matthew Huntington 3 years ago
parent 5b2baaab9e
commit 092fd18b1a

@ -18,42 +18,40 @@
//8: 2+3+3, 3+2+3, 3+3+2
//9: 3+3+3, 2+2+2+3, 2+2+3+2, 2+3+2+2, 3+2+2+2
//const breakDown = (num)=>{
//if (num < 2) {
//return false;
//} else if (num === 2 || num === 3) {
//return [num];
//}
//const nextNum = num - 2;
//const results = [2];
//return results.concat(breakDown(nextNum))
//}
const breakDown = (node)=>{
if(node.value > 3 && node.value - 3 > 1){
node.left = { value: 3 }
node.right = breakDown({value:node.value-3})
} else if(node.value > 3 && node.value - 2 > 1){
node.left = { value: 2 }
node.right = breakDown({value:node.value-2})
if(node.value < 4){
return node
}
//2 path
node.twoPath = {};
node.twoPath.left = { value: 2 }
node.twoPath.right = breakDown({value:node.value-2})
//3 path
if(node.value > 4){
node.threePath = {}
node.threePath.left = { value: 3 }
node.threePath.right = breakDown({value:node.value-3})
}
return node;
}
const tree = breakDown({value:7});
const tree = breakDown({value:9});
console.log(tree);
console.dir(tree, {depth:null});
const getLeaves = (node, leafArray)=>{
if(node.left === undefined && node.right === undefined){
leafArray.push(node.value);
} else {
getLeaves(node.left, leafArray)
getLeaves(node.right, leafArray)
}
return leafArray;
}
const leaves = getLeaves(tree, []);
//const getLeaves = (node, leafArray)=>{
//if(node.left === undefined && node.right === undefined){
//leafArray.push(node.value);
//} else {
//getLeaves(node.left, leafArray)
//getLeaves(node.right, leafArray)
//}
//return leafArray;
//}
//const leaves = getLeaves(tree, []);
console.log(leaves);
//console.log(leaves);

Loading…
Cancel
Save