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

LC.1008 | 前序遍历构造二叉搜索树 | 树 | 递归遍历

输入:
一个整数数组preorder,代表二叉搜索树的先序遍历结果。

要求:
根据给定的先序遍历还原出二叉搜索树(BST)。
BST 的性质是:对于任意节点,左子树所有节点值 < 当前节点值 < 右子树所有节点值。

输出:
构造出的二叉搜索树的根节点TreeNode*


思路:

本题解采用了直观的“递归 + 分治”策略,利用了二叉搜索树(BST)的核心性质来切分数据。

  1. 确定根节点
    前序遍历的第一个元素永远是当前子树的根节点。我们首先取出pre[0]创建根节点tmp

  2. 划分子集(分治)
    根据 BST 的性质,比根节点小的元素属于左子树,比根节点大的元素属于右子树。
    我们遍历pre数组中剩余的元素:

    • 若元素值小于pre[0],放入preleft数组。
    • 若元素值大于pre[0],放入preright数组。
  3. 递归构建

    • tmp->left= 递归处理preleft
    • tmp->right= 递归处理preright
    • 如果传入的数组为空,说明该分支已到达叶子节点下方,返回nullptr

优化:
当前解法在每一层递归都创建了新的vector,这会增加额外的空间开销和拷贝时间。更优的做法是传递原始数组的索引范围(start,end)或者使用“上限值控制法”来避免数组拷贝,但在逻辑理解上,当前的解法是符合直觉的。


复杂度:

  • 时间复杂度:O(N^2)
    • 在最坏情况下(例如链状树),每一层递归都需要遍历剩余所有元素并进行拷贝,导致总操作次数接近 N + (N-1) + … + 1。
  • 空间复杂度:O(N^2)
    • 每一层递归都创建了新的vector存储子数组,导致大量的额外空间消耗。

classSolution{public:TreeNode*bstFromPreorder(vector<int>&preorder){returntree(preorder);}TreeNode*tree(vector<int>pre){if(pre.size()==0){returnnullptr;}TreeNode*tmp=newTreeNode(pre[0]);vector<int>preleft,preright;for(inti=1;i<pre.size();i++){if(pre[i]>pre[0]){preright.push_back(pre[i]);}else{preleft.push_back(pre[i]);}}tmp->left=tree(preleft);tmp->right=tree(preright);returntmp;}};
http://www.gsyq.cn/news/103931.html

相关文章:

  • 2025 年 12 月复印机租赁服务权威推荐榜:彩色/高速/多功能/便携式/激光办公设备,灵活高效办公解决方案精选 - 品牌企业推荐师(官方)
  • “网络安全学什么?” 零基础小白入门宝典:核心知识+实战资源一网打尽
  • AI大模型怎么学?程序员新手收藏这篇就够了
  • vLLM镜像实测:连续批处理让Qwen推理效率翻倍
  • Miniconda环境管理实战:轻松解决多项目依赖冲突问题
  • 零基础想当网络安全工程师,如何不走弯路?掌握这张核心技能清单就够了
  • 2025 年 12 月医用加热呼吸回路厂家权威推荐榜:防冷凝恒温麻醉呼吸管路,专业诊疗与患者安全守护之选 - 品牌企业推荐师(官方)
  • 长文本战场“神仙打架”!腾讯SSA硬刚DeepSeek NSA,混合注意力机制更胜一筹!
  • Vue3、AntDesign 季度多选
  • GitHub组织账号管理Qwen3-32B项目协作开发流程
  • 告别手动“指挥家”!Agent Lightning实现全自动智能体编排,让多Agent协作快如闪电!
  • 2025年稻草漆行业十大品牌推荐:稻草漆防水怎样? - myqiye
  • 基于SpringBoot的社区互助系统
  • GraphRAG深度解析:超越传统RAG的智能检索技术,建议收藏学习
  • 2025年不锈钢管件优质厂家排名:实力厂商与源头厂家全解析 - 工业推荐榜
  • LobeChat前端性能优化建议:减少加载时间提升访问量
  • 2025年校服源头厂家权威推荐榜:校服定制/批发/企业,学生校服、冬季夏季秋冬款,匠心工艺与舒适面料口碑之选 - 品牌企业推荐师(官方)
  • 2025气体报警器厂家实力排行榜:东莞六家高灵敏度工业级安全守护品牌核心技术深度解析 - 品牌企业推荐师(官方)
  • AutoGPT提示词工程技巧:提升任务拆解准确性
  • 2025年稻草漆行业五大靠谱服务商推荐,专业艺术涂料施工与定 - mypinpai
  • 从数据湖到隐私湖:新一代数据架构思考
  • 博奥龙Hybridoma Feeder添加因子(含常见问题解答及客户评价)
  • [Windows] Aiseesoft屏幕录制 - 专业高清录屏工具
  • 2025 年 12 月砂尘试验箱实力厂家权威推荐榜:军标砂尘试验箱/防尘试验箱,严苛环境模拟与可靠品质深度解析 - 品牌企业推荐师(官方)
  • Qwen3-14B镜像下载官网:全能型中型大模型的部署首选
  • 2025年热门的淄博节能潜水泵/淄博消防潜水泵厂家选购指南与推荐 - 品牌宣传支持者
  • 2025年比较好的山东隔热条厂家推荐及选购参考榜 - 品牌宣传支持者
  • 2025年比较好的小型低温冷却液循环泵/低温冷却液循环泵选型实力厂家TOP推荐榜 - 品牌宣传支持者
  • 2025年本安型低速图像处理摄像仪直销厂家权威推荐榜单:视频分析服务器‌/矿鸿设备‌/矿用本安型低速图像处理摄像仪源头厂家精选 - 品牌推荐官
  • Java中高级面试题详解(十五):彻底搞懂 Spring Boot 启动流程与扩展点,别再只会写 main 方法!