news 2026/1/30 2:26:01

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/25 0:05:18

医疗AI垂直化突破:5大专科模型驱动行业变革

当人工智能从通用走向纵深&#xff0c;医疗健康领域正迎来一场静默而深刻的革命。如今&#xff0c;AI不再仅是辅助工具&#xff0c;而是化身为精通特定领域的“专科数字医生”——从眼底影像中预警全身性疾病&#xff0c;在病理切片中捕捉早期癌变&#xff0c;于基因序列中解码…

作者头像 李华
网站建设 2026/1/25 8:20:22

Qwen3-14B镜像部署全攻略:从GitHub到Ollama一键拉取模型

Qwen3-14B镜像部署全攻略&#xff1a;从GitHub到Ollama一键拉取模型 在AI技术加速渗透企业服务的今天&#xff0c;一个现实问题摆在许多中小团队面前&#xff1a;如何在有限算力和人力条件下&#xff0c;快速构建一套真正“能理解、会行动”的私有化智能系统&#xff1f;传统的…

作者头像 李华
网站建设 2026/1/29 22:15:40

收藏!2025大模型人才洗牌真相:28%离职率下,小白/程序员该咋突围?

作为常年泡在CSDN的技术人&#xff0c;上周某头部猎头朋友甩来的《2025年第三季度泛AI人才报告》&#xff0c;直接让我把手里的咖啡放凉了——数据里藏着的大模型人才生存密码&#xff0c;不管是刚入行的小白还是深耕多年的程序员&#xff0c;都值得扒透。 报告里的一组反差数据…

作者头像 李华