news 2026/5/6 22:42:05

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/5/4 5:50:40

学长亲荐10个降AIGC网站,千笔·降AIGC助手帮你轻松降AI率

AI降重工具&#xff0c;帮你轻松应对论文查重难题 在如今的学术环境中&#xff0c;越来越多的学生开始使用AI工具辅助写作&#xff0c;但随之而来的AIGC率过高、查重率超标等问题也让不少同学感到头疼。如何在保持原文语义和逻辑的前提下&#xff0c;有效降低AI痕迹和重复率&am…

作者头像 李华
网站建设 2026/5/4 5:50:38

Windows程序设计第六版 pdf下载,Win32 API经典教程电子书

对于许多Windows平台的开发者而言&#xff0c;《Windows程序设计》是一本经典的技术书籍&#xff0c;其第六版涵盖了从基础消息循环到高级图形界面的核心知识。作为一本深度指南&#xff0c;它系统性地讲解了Win32 API的使用方法&#xff0c;是理解Windows操作系统底层运行机制…

作者头像 李华
网站建设 2026/5/6 22:41:52

【课程设计/毕业设计】基于ssm的中小学生阅读能力培养系统小学中年级阅读能力培养课程体系【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/5/4 5:50:34

Java面试通关指南(七):Redis黑洞穿越:从数据结构到分布式缓存架构

&#x1f525; 前言 Redis作为互联网系统的性能加速器和数据结构瑞士军刀&#xff0c;是面试中必考的深度技术点。掌握Redis不仅是为了应对面试&#xff0c;更是为了构建高性能、高可用的现代分布式系统。本文将带你深入Redis内部世界&#xff0c;探索从数据结构到集群架构的完…

作者头像 李华
网站建设 2026/5/4 17:42:02

一觉醒来,Clawdbot突然操纵电脑开口说话了

来源&#xff1a;机器之心 本文约1500字&#xff0c;建议阅读5分钟AI&#xff1a;我寻思你有这个需求。 近期&#xff0c;AI 圈最火的当属可以 24 小时自动运行的「Clawdbot」&#xff01; 这个智能体助手是真的能帮你干活&#xff0c;它已经引走了 AI 圈的大半注意力。甚至因为…

作者头像 李华