diff --git a/random.js b/random.js index c7b3374..c8cb3e2 100644 --- a/random.js +++ b/random.js @@ -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);