题目思路将数组从最中间分为中间节点左边数组和右边数组中间作为根节点左边作为左子树右边作为右子树左子树右子树同样取中间节点作为根节点。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val val; * this.left left; * this.right right; * } * } */ class Solution { public TreeNode sortedArrayToBST(int[] nums) { return build(nums , 0 , nums.length - 1); } TreeNode build(int [] nums , int left ,int right){ if( left right) return null; int mid (left right)/2; TreeNode root new TreeNode(nums[mid]); root.left build(nums , left , mid - 1); root.right build(nums , mid 1 , right); return root; } }