当前位置: 首页 > news >正文

leetc0de 108. 将有序数组转换为二叉搜索树

什么是“二叉搜索树 (BST)”?

二叉搜索树(Binary Search Tree)有一个绝对铁律:左小、右大。 对于树上的任何一个节点

  • 它的左子树里所有的值,都必须小于这个节点的值。

  • 它的右子树里所有的值,都必须大于这个节点的值。

“平衡”的定义:一棵平衡二叉树规定,任何一个节点的左子树和右子树的深度(高度)差,绝对不能超过 1。

做题思路:如何把升序数组变成平衡二叉搜索树?

题目给的是一个已经排好序的数组,比如[-10, -3, 0, 5, 9]。 既然要保证“平衡”(左右两边节点数量差不多),又要保证“左小右大”,我们该选谁当这棵树的根节点

答案呼之欲出:选最中间的那个数!

核心思路(分治法 / 递归):

  1. 找中点当老大:取数组最中间的元素(比如这里的0)作为根节点。这样,根节点左边的数全比它小,右边的数全比它大,且左右两边的数量绝对均等(或只差一个)。

  2. 左半边建左子树:拿中点左边的数组段[-10, -3],继续重复第一步,把它的中点变成0的左孩子。

  3. 右半边建右子树:拿中点右边的数组段[5, 9],继续重复第一步,把它的中点变成0的右孩子。

  4. 何时结束:当切分出的数组段为空(没有元素了)时,说明到底了,返回空节点(None)。

这个不断“找中间、分两头”的过程,其实就相当于把你平时查字典时用的二分查找法,实体化成了一棵看得见摸得着的树!

# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]: if not nums: return None length = len(nums)//2 left_tree = self.sortedArrayToBST(nums[0:length]) right_tree = self.sortedArrayToBST(nums[length+1:]) root = TreeNode(nums[length],left_tree,right_tree) return root

http://www.jsqmd.com/news/608931/

相关文章:

  • UEFI固件分析实战:从入门到精通的逆向工程指南
  • 昭昭医考视频好不好?医考党实测反馈+核心优势拆解 - 品牌测评鉴赏家
  • 树莓派实战:基于PCF8591与NTC热敏电阻的智能温控系统搭建
  • HTTP/3 QUIC 协议深度解析:从 Wireshark 抓包到性能优化实战
  • 像素幻梦效果展示:生成支持透明通道的PNG像素图实操演示
  • 深入理解Scala Exercises的练习系统:从Stdlib到Cats的完整学习路径
  • ARM架构和主要内核介绍-D
  • VMware仅主机模式网络隔离太彻底?手把手教你安全访问外网(附避坑指南)
  • 医考备考工具实测:聊聊我眼中的“昭昭医考”全周期备考体系 - 品牌测评鉴赏家
  • 数字后端实战指南 | Innovus LAB Day3:从零掌握Floorplan与Powerplan核心技巧
  • 千问3.5-2B参数详解教程:max_new_tokens=192如何平衡信息密度与响应完整性
  • 革新星露谷体验:SMAPI全栈模组加载技术指南
  • 2026年国内外6款AI设计工具大测评:特性、优缺点及定价模式 - 企业数字化观察家
  • 如何用Blender MMD Tools解决模型动画导入难题?10个实用技巧全解析
  • JBoltAI Agent OS:企业AI控制平面的三级演进
  • 004、深夜调试:为什么我的API接口总被前端吐槽?
  • 医学考研必看!昭昭医考视频全面解析 - 品牌测评鉴赏家
  • “人工智能+”政策,企业引入AI的机遇与JBoltAI的助力
  • Pixel Couplet Gen部署案例:跨境电商小程序为海外华人提供中英双语像素春联
  • CoPaw助力自动化测试:智能生成Python单元测试用例
  • Claude越更越废?AMD AI负责人甩出23万次调用记录:已“变蠢+摆烂”,复杂工程根本干不了
  • 思欣跃:全面解析学习困难解决方案与情绪管理策略
  • OmAgent实战教程:打造个人移动助手,媲美Google Astral
  • 2025届毕业生推荐的六大降AI率平台解析与推荐
  • ComfyUI-Impact-Pack V8:从单体架构到模块化设计的演进之路
  • 保姆级教程:用CANoe 15.0搞定DoIP诊断测试(从硬件配置到10 03测试)
  • 完整技术实现:Beyond Compare 5授权激活与密钥生成专业方案
  • Qwen-Image-2512开源可部署:MIT许可+完整Dockerfile+可审计模型加载流程
  • 2026届毕业生推荐的十大AI写作网站实际效果
  • Overleaf论文提交arXiv保姆级避坑指南:从编译报错到.bbl文件处理全流程