private static TreeNode AddToTree(int[] array, int start, int end) { if (end < start) { return null; } var mid = (start + end) / 2; var node = new TreeNode(array[mid]); node.SetLeftChild(AddToTree(array, start, mid - 1)); node.SetRightChild(AddToTree(array, mid + 1, end)); return node; }