面试算法-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;
    }
}
相关推荐
算AI1 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
uhakadotcom1 小时前
MQTT入门:轻量级物联网通信协议
后端·面试·github
我不会编程5552 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
逆袭的小黄鸭2 小时前
JavaScript 闭包:强大特性背后的概念、应用与内存考量
前端·javascript·面试
carterwu2 小时前
如何自建一个类似antd的组件库?
面试
9号达人2 小时前
java9新特性详解与实践
java·后端·面试
owde2 小时前
顺序容器 -list双向链表
数据结构·c++·链表·list
uhakadotcom3 小时前
Zustand状态管理库:轻量级、高效的React解决方案
前端·javascript·面试
第404块砖头3 小时前
分享宝藏之List转Markdown
数据结构·list
hyshhhh3 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉