108.Convert Sorted Array to Binary Search Tree

题目连接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/数组

题目大意:将一个升序数组转换成平衡二叉排序树。ide

法一(借鉴):一看到平衡二叉,就懵了,觉得是用平衡转换来作,直接看了题解,发现并非,用二分就能够作,毕竟还要知足排序树的特色,代码以下(耗时1ms):spa

 1     public TreeNode sortedArrayToBST(int[] nums) {
 2         return dfs(nums, 0, nums.length - 1);
 3     }
 4     
 5     public static TreeNode dfs(int[] nums, int left, int right) {
 6         if(left > right) {
 7             return null;
 8         }
 9         int mid = (left + right) / 2;
10         TreeNode root = new TreeNode(nums[mid]);
11         root.left = dfs(nums, left, mid - 1);
12         root.right = dfs(nums, mid + 1, right);
13         return root;
14     }
View Code

法二(借鉴):非递归解,虽然以为有点画蛇添足,https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/discuss/code

相关文章
相关标签/搜索