本文共 585 字,大约阅读时间需要 1 分钟。
思路:二分法,每次取终点给TreeNode赋值,然后左右递归。
/** * 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 build(nums,0,nums.length-1); } public TreeNode build(int[] nums,int s,int e){ if (s>e) { return null; } int m=(s+e)/2; int val=nums[m]; TreeNode node=new TreeNode(val); node.left=build(nums,s,m-1); node.right=build(nums,m+1,e); return node; }}
耗时:312ms,上游。