美文网首页
将有序数组转换为二叉搜索树

将有序数组转换为二叉搜索树

作者: 小白学编程 | 来源:发表于2018-09-06 22:18 被阅读0次

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。

本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

示例:


image.png

思路

取数组中间的数为根节点,左边的数中间为左子树节点,右边的数为右子树节点,以此类推

class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        if (nums.length == 0) {
            return null;
         }
        return sort(nums,0,nums.length-1);
    }
    
    public TreeNode sort(int []nums,int s,int e){
        
        if(s>e){
            return  null;
        }
        int mid=s+(e-s)/2;
        TreeNode root=new TreeNode(nums[mid]);
        root.left=sort(nums,s,mid-1);
        root.right=sort(nums,mid+1,e);
        return root;
    }
}

相关文章

网友评论

      本文标题:将有序数组转换为二叉搜索树

      本文链接:https://www.haomeiwen.com/subject/xaifgftx.html