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; } }