108. Convert Sorted Array to Binary Search Tree

来源:互联网 发布:js动态设置div高度 编辑:程序博客网 时间:2024/05/16 16:59

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

这道题用递归的解法,每次选数组中间的数作为node,可以保证最后是一个height balanced BST。代码如下:

/** * 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) {        if (nums == null) {            return null;        }        return helper(nums, 0, nums.length - 1);    }    public TreeNode helper(int[] nums, int left, int right) {        if (left > right) {            return null;        }        int mid = left + (right - left) / 2;        TreeNode node = new TreeNode(nums[mid]);        node.left = helper(nums, left, mid - 1);        node.right = helper(nums, mid + 1, right);        return node;    }}

0 0
原创粉丝点击