Code coverage report for lib/algorithms/4-binaryTrees/createBst.js

Statements: 93.75% (15 / 16)      Branches: 83.33% (5 / 6)      Functions: 100% (2 / 2)      Lines: 100% (14 / 14)      Ignored: none     

All files » lib/algorithms/4-binaryTrees/ » createBst.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 241 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;