1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1 4 4 4 4 1 12 10 10 10 4 4 10 1 | var createBst = function(sourceArray) { Iif(sourceArray === null) return null; var start = 0; var end = sourceArray.length - 1; return getNode(start, end, sourceArray); function getNode(start, end, array) { if(start > end) return undefined; var midpoint = Math.floor((end + start) / 2); var node = { data : array[midpoint] }; if(start !== end) { node.left = getNode(midpoint + 1, end, array); node.right = getNode(start, midpoint - 1, array); } return node; } }; module.exports = createBst; |