108. Convert Sorted Array to Bin
2018-09-02 本文已影响0人
萧瑟空间
注意BST的格式,如何建立BST等的知识
/**
* 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;
}
if(nums.length == 1){
return new TreeNode(nums[0]);
}
int size = nums.length;
TreeNode root = helper(nums, 0, size-1);
return root;
}
// 选定了helper函数返回TreeNode之后逻辑就非常清楚了
private TreeNode helper(int[] nums, int l, int r){
int length = r-l+1;
int cutPoint = l + length/2;
if(length == 1){
return new TreeNode(nums[l]);
}
if(length < 1){
return null;
}
TreeNode node = new TreeNode(nums[cutPoint]);
node.left = helper(nums, l, cutPoint-1);
node.right = helper(nums, cutPoint+1, r);
return node;
}
}