leetcode--Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public TreeNode sortedArrayToBST(int[] num) {
return transferHelper(num, 0, num.length);
}
/**construct tree node with the help of indices.<br>
* @param num --input array
* @param i --left index which is included.
* @param j --right index which is excluded
* @return root node of the tree
*/
private TreeNode transferHelper(int[] num, int i, int j){
TreeNode root = null;
if(j > i){
if(j == i + 1)
root = new TreeNode(num[i]);
else{
int mid = i + (j - i) / 2;
root = new TreeNode(num[mid]);
root.left = transferHelper(num, i, mid);
root.right = transferHelper(num, mid + 1, j);
}
}
return root;
}
}

浙公网安备 33010602011771号