leetcode-108. Convert Sorted Array to Binary Search Tree

来源:互联网 发布:淘宝直播卖的东西好吗 编辑:程序博客网 时间:2024/06/06 01:40

leetcode-108. Convert Sorted Array to Binary Search Tree

题目:

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

这题的基本思路就是2分法,由于是排好序的,想要构造一个树,我们只要找到中点就可以了。然后左边的数都是左节点的,右边的都是右节点的。迭代运算就好。
还是需要注意定位i和j不可以用绝对坐标。必须是相对的坐标

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