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

相關文章
相關標籤/搜索