
题目来源:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
思路:
我最开始是想从子节点往根节点做,后来发现,太困难了,好像用不了递归(因为节点命名的原因),所以还是乖乖从根节点往下做。
常规思维:找中点,二分法
代码:
/**
- Definition for a binary tree node.
- public class TreeNode {
- int val;
- TreeNode left;
- TreeNode right;
- TreeNode(int x) { val = x; }
-
}
*/
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {if(nums.length == 0){ return null; } TreeNode head = sorted(nums,0,nums.length-1); return head;}
public TreeNode sorted(int []nums,int low,int high){
if(low > high){ return null; } int mid = (low+high)/2; TreeNode node = new TreeNode(nums[mid]); node.left = sorted(nums,low,mid-1); node.right = sorted(nums,mid+1,high); return node;}
}




近期评论