|
|
|
|
@ -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 breakDown = (node)=>{
|
|
|
|
|
|
|
|
|
|
//const nextNum = num - 2;
|
|
|
|
|
//const results = [2];
|
|
|
|
|
//return results.concat(breakDown(nextNum))
|
|
|
|
|
//}
|
|
|
|
|
if(node.value < 4){
|
|
|
|
|
return node
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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})
|
|
|
|
|
//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);
|
|
|
|
|
|