面试算法-175-将有序数组转换为二叉搜索树

题目

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵

平衡

二叉搜索树。

示例 1:

输入:nums = [-10,-3,0,5,9]

输出:[0,-3,9,-10,null,5]

解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

java 复制代码
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return dfs(nums, 0, nums.length - 1);
    }

    public TreeNode dfs(int[] nums, int left, int right) {
        if (left > right) {
            return null;
        }

        int mid = left + (right - left) / 2;
        TreeNode leftNode = dfs(nums, left, mid - 1);
        TreeNode root = new TreeNode(nums[mid]);
        root.left = leftNode;
        root.right = dfs(nums, mid + 1, right);
        return root;
    }
}
相关推荐
憨波个6 分钟前
【说话人日志】DOVER-Lap:overlap-aware diarization 输出融合算法
人工智能·深度学习·算法·音频·语音识别
叼烟扛炮13 分钟前
C++第四讲:类和对象(下)
c++·算法·类和对象
Rabitebla13 分钟前
vector 的骨架:三根指针、模板陷阱与迭代器失效的第一现场
开发语言·数据结构·c++·算法
代码不停31 分钟前
BFS解决floodfill算法题目练习
算法·宽度优先
上弦月-编程37 分钟前
C语言指针从入门到实战
java·jvm·算法
WL_Aurora38 分钟前
Python 算法基础篇之树和二叉树
python·算法
txzrxz39 分钟前
关于前缀和
算法·动态规划·图论
杨连江41 分钟前
载流子矩阵限域束缚实现常温常压超导的理论与结构设计
算法
逻辑驱动的ken43 分钟前
Java高频面试考点场景题20
java·开发语言·深度学习·面试·职场和发展
Wect1 小时前
深度剖析浏览器跨域问题
前端·面试·浏览器