news 2026/8/19 13:18:28

leetcode 889. Construct Binary Tree from Preorder and Postorder Traversal 根据前序和后序遍历构造二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 889. Construct Binary Tree from Preorder and Postorder Traversal 根据前序和后序遍历构造二叉树

Problem: 889. Construct Binary Tree from Preorder and Postorder Traversal 根据前序和后序遍历构造二叉树

前序遍历是【根左右】,后序遍历是【左右根】,所以preorder第一个一定是根节点,postorder最后一个一定是根节点,两者一定相等,postorder倒数第二个一定是右子树的根节点,所以可以根据postorder倒数第二个将前序遍历划分开来,划分成左右子树,前序遍历确定好右子树节点个数以后就可以将后序遍历划分开

Code

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: int preL, postL; TreeNode* construct(int preLeft, int preRight, int postLeft, int postRight, vector<int>& preorder, vector<int>& postorder) { if(preLeft > preRight || postLeft > postRight) return nullptr; TreeNode* root = new TreeNode; root->val = preorder[preLeft]; if(preLeft==preRight || postLeft == postRight) return root; int k = preLeft + 1; while(k <= preL && preorder[k]!=postorder[postRight-1]) k++; root->left = construct(preLeft+1, k-1, postLeft, postRight - (preRight - k + 1)-1, preorder, postorder); root->right = construct(k, preRight, postRight - (preRight - k + 1), postRight-1, preorder, postorder); return root; } TreeNode* constructFromPrePost(vector<int>& preorder, vector<int>& postorder) { TreeNode* root = nullptr; preL = preorder.size()-1; postL = postorder.size()-1; root = construct(0, preL, 0, postL, preorder, postorder); return root; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 13:20:30

30.9MB全球国界与中国国界私藏版

为了便于全球或全国私有化地图的数据提取&#xff0c;我们基于公开的全球数据处理了一份方便我们自用的全球与全国国界数据。 我们暂且称该数据为“全球与全国国界私藏版”&#xff0c;如果该数据对你也有用&#xff0c;请从GIS资源库自助领取。 30.9MB全球与全国国界私藏版 …

作者头像 李华
网站建设 2026/8/18 15:14:35

计算机SSM毕设实战-基于SSM框架的中小学生阅读能力培养系统的设计与实现基于ssm的中小学生阅读能力培养系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/8/17 19:33:31

三大智能体开发平台详细对比:FastGPT、Dify和Coze(附教程)

目前&#xff0c;市面上涌现了众多基于 RAG&#xff08;检索增强生成&#xff09;的优秀产品&#xff0c;其中以FastGPT、Dify 和Coze 最具代表性&#xff0c;备受用户关注与推崇。每款工具都在特定场景中展现了独特的技术优势与适用价值&#xff0c;同时也存在一些局限性。 本…

作者头像 李华
网站建设 2026/8/16 10:52:34

90%前端面试必问的12个JS核心,搞懂这些直接起飞!

90% 前端面试必问的 12 个 JS 核心知识点 &#xff08;2025–2026 年大厂真实高频考点&#xff0c;搞懂这些基本能过 80% 的 JS 考察环节&#xff09; 以下 12 个点几乎是各大厂&#xff08;字节、阿里、腾讯、美团、京东、快手、百度等&#xff09;面试中最稳定、最常考的 JS…

作者头像 李华
网站建设 2026/8/9 15:02:13

体验智能体构建过程:从零开始构建Agent

1. 什么是智能体&#xff1f; 智能体&#xff08;Agents&#xff09;是一种能够感知环境、做出决策并采取行动来实现特定目标的自主实体。智能体的复杂程度各不相同&#xff0c;从简单的响应式智能体&#xff08;对刺激直接做出反应&#xff09;到更高级的智能体&#xff08;能…

作者头像 李华