Java教程

将有序数组转化成二叉搜索树

本文主要是介绍将有序数组转化成二叉搜索树,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

详细思路

dfs,形参leftright数据nums,生成一棵高度平衡的二叉搜索树,想要高度平衡可以将中点的值作为根结点   精确定义 dfs,形参leftright数据nums,生成高度平衡二叉搜索树,left>right返回空,最后返回
class Solution {
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        int n=nums.size();
        return dfs(0,n-1,nums);
    }
    TreeNode*dfs(int left,int right,vector<int>&nums){
        if(left>right)return nullptr;
        int mid=left+(right-left)/2;
        TreeNode*leftTree=dfs(left,mid-1,nums);
        TreeNode*rightTree=dfs(mid+1,right,numsa);
        return new TreeNode(nums[mid],leftTree,rightTree);
    }
};

 

这篇关于将有序数组转化成二叉搜索树的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!