/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode sortedArrayToBST(int[] nums) { return createTree(nums, 0, nums.length); } private TreeNode createTree(int[] nums, int from, int to) { if(from>=to) return null; int len = to - from; if(len==1) return new TreeNode(nums[from]); int rootIndexOffset = len%2==0 ? len/2 : (len-1)/2; int rootIndex = from + rootIndexOffset; TreeNode root = new TreeNode(nums[rootIndex]); root.left = createTree(nums, from, rootIndex); root.right = createTree(nums, rootIndex+1, to); return root; } }
108. Convert Sorted Array to Binary Search Tree
原文:http://www.cnblogs.com/neweracoding/p/5274485.html