二叉查找樹是,對於任意一個結點,左邊的結點均小於它,右邊的結點均大於它java
要建立一個高度最小的樹,就必須讓左右子結點的數量越接近越好,也就是說,要讓中間值成爲根節點,這樣,左邊的一半是左子樹,右邊的一半是右子樹app
而後,繼續以相似的方式構造整棵樹,數據每一段的中間值成爲根元素,左邊一半成爲左子樹,右邊一半成爲右子樹spa
用遞歸方式運用createMinimumBST().net
[java] view plain copyblog
- import BTreeBalanced.TreeNode;
-
-
- public class minimumBST {
- TreeNode createMinumumBST(int arr[], int start, int end) {
- if (end < start) {
- return null;
- }
-
- int mid = (start + end) / 2;
- TreeNode n = new TreeNode (arr[mid]);
- n.left = createMinimumBST(arr, start, mid - 1);
- n.right = createMinumumBST(arr, mid + 1, end);
- return n;
- }
-
- TreeNode createMinimumBST(int arr[]) {
- return createMinimumBST(array, 0, array.length - 1);
- }
- }