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

Loading…
Cancel
Save