Hot100:将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree)分治选中点 ACERS 解析
副标题 / 摘要 LeetCode 108 的关键不在“会递归”,而在于看懂题目同时要求两件事:既要保持 BST 的有序性,又要尽量平衡。只要抓住“中点做根”这个证据,整题就会自然落成一个非常干净的区间分治。 预计阅读时长:11~14 分钟 标签:Hot100、二叉树、BST、分治、递归 SEO 关键词:Convert Sorted Array to Binary Search Tree, 将有序数组转换为二叉搜索树, 平衡二叉搜索树, BST, 分治, LeetCode 108 元描述:系统讲透 LeetCode 108 的中点分治构造法,覆盖题意推导、正确性解释、工程映射与多语言实现。 A — Algorithm(题目与算法) 题目还原 给你一个严格递增的整数数组 nums,请把它转换成一棵高度平衡的二叉搜索树。 这里同时包含两个目标: 新树必须满足 BST 的大小关系 新树还必须尽量平衡,也就是任意节点左右子树高度差不超过 1 输入输出 名称 类型 描述 nums int[] 严格递增数组 返回值 TreeNode 任意一棵合法的高度平衡 BST 根节点 示例 1 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也同样正确。 示例 2 输入:nums = [1,3] 输出:[3,1] 解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。 提示 1 <= nums.length <= 10^4 -10^4 <= nums[i] <= 10^4 nums 按严格递增顺序排列 目标读者 正在刷 Hot100,希望把“数组转树”的分治模板固定下来的学习者 已经会写 BST 判断,但还不够熟悉“BST 构造题”如何从题意推出来的开发者 想理解为什么“中点做根”不是技巧,而是由约束直接逼出来的读者 背景 / 动机 这题很适合拿来训练一个能力: ...