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

力扣刷题(第二十二天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

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

解题思路​

  1. ​选择中间节点​
    由于数组已排序,​​中间元素​​作为根节点可保证左右子树节点数相近。若数组长度为偶数,可选择中间左边或右边元素。

  2. ​递归构建子树​
    将数组分为左半部分和右半部分,分别递归构建左子树和右子树。递归终止条件是子数组为空(即左边界超过右边界)。

  3. ​时间复杂度与空间复杂度​

    • ​时间复杂度​​:O(n),每个元素仅访问一次。
    • ​空间复杂度​​:O(log n),递归栈深度与树高度一致。
  1. class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef sortedArrayToBST(nums):def helper(left, right):if left > right:return Nonemid = (left + right) // 2root = TreeNode(nums[mid])root.left = helper(left, mid - 1)root.right = helper(mid + 1, right)return rootreturn helper(0, len(nums) - 1)

逐行解释

class TreeNode:# 定义二叉搜索树的节点结构def __init__(self, val=0, left=None, right=None):self.val = val        # 当前节点存储的值self.left = left      # 指向左子节点的指针self.right = right    # 指向右子节点的指针def sortedArrayToBST(nums):# 将有序数组转换为高度平衡的二叉搜索树# 输入:有序数组 nums# 输出:二叉搜索树的根节点def helper(left, right):# 辅助递归函数,用于构建指定索引范围内的二叉搜索树# left: 当前子树在数组中的左边界索引# right: 当前子树在数组中的右边界索引# 递归终止条件:当左边界索引大于右边界索引时# 表示当前子树为空,返回 Noneif left > right:return None# 选择中间元素作为当前子树的根节点# 使用整数除法计算中间索引mid = (left + right) // 2# 创建根节点,值为中间元素root = TreeNode(nums[mid])# 递归构建左子树# 左子树的元素范围为原数组的 [left, mid-1]root.left = helper(left, mid - 1)# 递归构建右子树# 右子树的元素范围为原数组的 [mid+1, right]root.right = helper(mid + 1, right)# 返回构建好的当前子树的根节点return root# 从整个数组范围开始构建二叉搜索树return helper(0, len(nums) - 1)

相关文章:

  • 小刚说C语言刷题—1078求恰好使s=1+1/2+1/3+…+1/n的值大于X时n的值
  • 【MCAL】TC397+EB-tresos之I2c配置实战(同步、异步)
  • 结合 ECharts / Ant Design Blazor 构建高性能实时仪表盘
  • 记录踩过的坑-金蝶云苍穹平台-轻分析和轻报表(慢慢更新)
  • TCP IP
  • 图(邻接矩阵和邻接表)
  • 质心均匀体(引力屏蔽技术)
  • [ctfshow web入门] web68
  • Android 使用Paging3 实现列表分页加载、下拉刷新、错误重试、筛选功能
  • Java 泛型(Generic)
  • 基于NI-PXI的HIL系统开发
  • matlab介绍while函数
  • 从爬虫到网络---<基石9> 在VPS上没搞好Docker项目,把他卸载干净
  • CSS弹性布局
  • 最大公约数gcd和最小公倍数lcm
  • Yocto是如何使用$D目录来构建文件系统的?
  • 2025年货运从业资格考试题库及答案
  • comfyu BiRefNet-General模型下载及存放地方
  • JDK10新特性
  • 数据结构算法习题通关:树遍历 / 哈夫曼 / 拓扑 / 哈希 / Dijkstra 全解析
  • 2025年度上海市住房城乡建设管理委工程系列中级职称评审工作启动
  • 欧盟公布对美关税反制清单,瞄准美国飞机等产品
  • 外交部回应中美经贸高层会谈:这次会谈是应美方请求举行的
  • 川大全职引进考古学家宫本一夫,他曾任日本九州大学副校长
  • 云南一男子酒后经常殴打七旬母亲,被警方拘14日罚600元
  • 体坛联播|国米淘汰巴萨晋级欧冠决赛,申花击败梅州避免连败