面试算法-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;
    }
}
相关推荐
m0_736919102 小时前
C++中的委托构造函数
开发语言·c++·算法
小小小小王王王2 小时前
洛谷-P1886 【模板】单调队列 / 滑动窗口
c++·算法
PPPPPaPeR.3 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
看我干嘛!3 小时前
python第五次作业
算法
历程里程碑3 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun3 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
Pluchon3 小时前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法
boooooooom3 小时前
Pinia必学4大核心API:$patch/$reset/$subscribe/$onAction,用法封神!
javascript·vue.js·面试
生锈的键盘3 小时前
推荐算法实践:交叉特征的理解
算法
试着3 小时前
【huawei】机考整理
学习·华为·面试·机试