力扣HOT100 - 108. 将有序数组转换为二叉搜索树

解题思路:

二叉搜索树一般使用中序遍历

java 复制代码
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return helper(nums,0,nums.length-1);
    }
    public TreeNode helper(int[] nums,int left,int right){
        if(left>right) return null;

        //确定根节点
        //总是选择中间位置左边的数字作为根节点
        //也可以用 int mid = (left + right + 1) / 2; 总是选择中间位置右边的数字作为根节点
        int mid=(left+right)/2;
        TreeNode root=new TreeNode(nums[mid]);

        root.left=helper(nums,left,mid-1);
        root.right=helper(nums,mid+1,right);
        return root;
    }
}
相关推荐
BanyeBirth8 分钟前
C++高精度算法(加、减、乘)
开发语言·c++·算法
houliabc8 分钟前
C语言个人笔记
c语言·数据结构·笔记·算法
Allen Wurlitzer28 分钟前
算法刷题记录——LeetCode篇(1.9) [第81~90题](持续更新)
算法·leetcode·职场和发展
@MrLiu29 分钟前
# 深度学习中的优化算法详解
人工智能·深度学习·算法·优化器
阳洞洞32 分钟前
leetcode 377. Combination Sum IV
算法·leetcode·动态规划·完全背包问题
AronTing37 分钟前
12- Java虚拟线程(Project Loom)深度解析:原理、实战与性能调优
java·后端·面试
顾林海43 分钟前
深度解析LinkedHashSet工作原理
android·java·面试
创码小奇客1 小时前
Java 对象变形记:BeanUtils 与 MapStruct 的高阶魔法实战
java·spring boot·trae
申城异乡人1 小时前
Spring RestTemplate使用方法总结
java
阿巴~阿巴~1 小时前
蓝桥杯 C/C++ 组历届真题合集速刷(一)
c语言·c++·算法·蓝桥杯