面试算法-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;
    }
}
相关推荐
佑白雪乐16 分钟前
LCR 175. 计算二叉树的深度
算法·深度优先
阿Y加油吧23 分钟前
力扣打卡day07——最大子数组和、合并区间
算法
_饭团27 分钟前
字符串函数全解析:12 种核心函数的使用与底层模拟实现
c语言·开发语言·学习·考研·面试·蓝桥杯
想吃火锅100527 分钟前
【leetcode】105. 从前序与中序遍历序列构造二叉树
算法·leetcode·职场和发展
2401_8318249634 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
靠沿36 分钟前
【优选算法】专题十八——BFS解决拓扑排序问题
算法·宽度优先
cui_ruicheng39 分钟前
C++数据结构进阶:哈希表实现
数据结构·c++·算法·哈希算法·散列表
前端摸鱼匠39 分钟前
面试题4:多头注意力(MHA)相比单头注意力的优势是什么?Head数如何影响模型?
人工智能·ai·面试·职场和发展·求职招聘
光电笑映42 分钟前
高阶数据结构之红黑树详解
数据结构
li星野1 小时前
[特殊字符] 模拟试卷一:C++核心与系统基础(90分钟)答案版
开发语言·c++·算法