pat根据中序遍历和先序遍历_[leetcode/lintcode 题解] 前序遍历和中序遍历树构造二叉树...

975c12e93188401a66fce15d9d9435f0.png

【题目描述】

根据前序遍历和中序遍历树构造二叉树.

在线评测地址:

九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧​www.jiuzhang.com

【样例】

样例 1:

输入:[],[]
输出:{}
解释:
二叉树为空

样例 2:

输入:[2,1,3],[1,2,3]
输出:{2,1,3}
解释:
二叉树如下2/ 
1   3

【题解】

Given preorder and inorder traversal of a tree, construct the binary tree.

Note:

You may assume that duplicates do not exist in the tree.

前序的第一个为根,在中序中找到根的位置。

中序中根的左右两边即为左右子树的中序遍历。同时可知左子树的大小size-left。

前序中根接下来的size-left个是左子树的前序遍历。

由此可以递归处理左右子树。

public class Solution {private int findPosition(int[] arr, int start, int end, int key) {int i;for (i = start; i <= end; i++) {if (arr[i] == key) {return i;}}return -1;}private TreeNode myBuildTree(int[] inorder, int instart, int inend,int[] preorder, int prestart, int preend) {if (instart > inend) {return null;}TreeNode root = new TreeNode(preorder[prestart]);int position = findPosition(inorder, instart, inend, preorder[prestart]);root.left = myBuildTree(inorder, instart, position - 1,preorder, prestart + 1, prestart + position - instart);root.right = myBuildTree(inorder, position + 1, inend,preorder, position - inend + preend + 1, preend);return root;}public TreeNode buildTree(int[] preorder, int[] inorder) {if (inorder.length != preorder.length) {return null;}return myBuildTree(inorder, 0, inorder.length - 1, preorder, 0, preorder.length - 1);}
}

【更多语言代码参考】

LintCode 领扣​www.lintcode.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机员工工资管理系统源代码,C++员工工资管理系统源代码

《C员工工资管理系统源代码》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《C员工工资管理系统源代码(17页珍藏版)》请在人人文库网上搜索。1、include #include #include #include #include #include using namespace std;#define NULL 0#define LEN sizeof(struct …

计算机专业人才培养模式改革,地方高校计算机科学与技术专业人才培养模式改革与实践...

摘要:本文分析了目前我国地方高等院校计算机专业人才培养现状,以太原科技大学计算机科学与技术专业为例,针对办学指导思想、专业定位、专业特色、专业培养模式及课程体系进行了研究与探讨,提出了“行业特色明显、专业方向细化、实践技能突出、素质教育鲜明”的专业建设指导思想…

java中审核订单流程图_「数据架构」数据流程图:实例-订餐系统

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过绘制数据流程图&#xff0c;您可以了解由参与系统流程的人员提供并交付给他们的信息、完成流程所需的信息以及需要存储和访问的信息。本文以一个订餐系统为例&#xff0c;对数据流图(DFD)进行了描述和说明。食品订…

太原市中考计算机考试系统,太原中考报名系统

中考报名即将开始&#xff0c;希望大家都能顺利报名&#xff0c;出国留学网小编为大家准备了2016太原中考报名系统&#xff0c;希望对大家有所帮助&#xff0c;更多精彩内容欢迎访问出国留学网中考频道。2016太原中考报名系统【点击查看最新报名系统】延伸阅读&#xff1a;中考…

python求圆柱体的体积_漫谈超球体的体积公式

现实生活中&#xff0c;我们只要掌握圆的周长和面积公式&#xff0c;了解球的表面积和体积公式就够用了&#xff0c;没有什么可以深究的。本篇将带你走进高维度球的表面积和体积公式[1]。  我们生活在三维空间&#xff0c;对更高维度的空间难以构想。笛卡尔说&#xff1a;我思…

ftp 服务器 性能,FTP 服务器性能 测试点

使用ffmpeg转换webm格式安装ffmpeg brew install ffmpeg --with-libvpx --with-libvorbis 如果已经装过 brew reinstall ffmpeg --with-libv ...对于多个列的转行(一个值均匀分布在两个列中)&#xff0c;对于个别字段通过取别名&#xff0c;join方式解决。例如,这个表的结构: s…

jsp项目放入宝塔windows环境_商业裂变,之项目技术实战(第八节:宝塔面板介绍)...

一、宝塔简介&#xff1a;宝塔面板是一款服务器管理软件&#xff0c;支持windows和linux系统&#xff0c;可以通过Web端轻松管理服务器&#xff0c;提升运维效率。例如&#xff1a;创建管理网站、FTP、数据库&#xff0c;拥有可视化文件管理器&#xff0c;可视化软件管理器&…

es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章

ES文件浏览器是一款多功能的手机文件/程序/进程管理器&#xff0c;可以在手机、电脑、远程和蓝牙间浏览管理文件。是一个功能强大的免费的本地和网络文件管理器和应用程序管理器。ES文件浏览器与电脑进行局域网链接后可以管理电脑的文件&#xff0c;不只是复制&#xff0c;还可…

arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记

本文介绍如何用IDA进行动态调试及部分ARM指令的学习。环境&#xff1a;已root的安卓手机一部&#xff0c;IDA pro 6.8&#xff0c;win7系统。下载样本app&#xff0c;并已确认可调试(debuggable true)&#xff0c;下文不表&#xff1a;http://pan.baidu.com/s/1jG22HMY一 手机…

糖豆人显示此服务器正在进行游戏,糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼...

原标题&#xff1a;糖豆人服务器频繁崩溃&#xff0c;west滚石教技巧&#xff0c;蓝哥踢球做内鬼自从糖豆人游戏开放以来&#xff0c;大批玩家涌入&#xff0c;造成糖豆人服务器拥堵&#xff0c;一度出现崩溃。隔三差五就会来一次。玩家正玩得兴起&#xff0c;突然的崩溃让玩家…

js中立即执行函数会预编译吗_面试官:聊聊对Vue.js框架的理解

作者&#xff1a;yacan8https://github.com/yacan8/blog/issues/26本文为一次前端技术分享的演讲稿&#xff0c;所以尽力不贴 Vue.js 的源码&#xff0c;因为贴代码在实际分享中&#xff0c;比较枯燥&#xff0c;效果不佳&#xff0c;而更多的是以图片和文字的形式进行表达。分…

如何卸载服务器的系统,卸载服务器的操作系统

卸载服务器的操作系统 内容精选换一换弹性云服务器卸载磁盘。弹性云服务器状态为stopped时支持系统盘(也就是/dev/sda挂载点)和用户盘的卸载&#xff0c;没有操作系统限制&#xff0c;也不需要在弹性云服务器内部安装vmtools。弹性云服务器状态为active态时有如下约束限制&…

修改了模板文件tpl如何立即生效_Views视图与模板

一、概述用户请求到视图流程&#xff1a;当有人访问我们django项目的时候 例如127.0.0.1:8000/polls/23&#xff0c;django首先到加载mysite.urls模块在mysite.urls中发现有urlpatterns变量&#xff0c;于是在其内按顺序进行匹配。当它匹配上了polls&#xff0c;就到匹配到的po…

vue本地没事放到服务器上无限循环,解决vue中的无限循环问题

项目中遇到了这样一个问题&#xff1a;每一种产品有对应的服务费&#xff0c;每一个商家有多种商品要单独计算每一家的服务费&#xff0c;最后汇总总的服务费用。我直接写了一个方法来计算出每个商家和总的服务费用并return出来。如果不看控制台的话运行是没问题的。但是控制台…

壁式框架内力计算_4种类型剪力墙的计算要点

剪力墙又称抗风墙、抗震墙或结构墙。房屋或构筑物中主要承受风荷载或地震作用引起的水平荷载和竖向荷载(重力)的墙体&#xff0c;防止结构剪切(受剪)破坏。又称抗震墙&#xff0c;一般用钢筋混凝土做成。它分平面剪力墙和筒体剪力墙。平面剪力墙用于钢筋混凝土框架结构、升板结…

片源系统服务器,OUO NAS10主控界面评测

OUO NAS10主控界面评测■OUO NAS10主控界面评测OUO NAS10采用了高集成度的芯片&#xff0c;功耗比较低&#xff0c;整机满载情况下也不会超过9W。不过他的主控界面看起来还是比较简单易懂的&#xff0c;由于本身自带了linux的操作系统&#xff0c;还是比较容易上手的。附送光盘…

解锁设备_无师自通解锁新设备抗击疫情

随着春节假期接近尾声&#xff0c;一线企业复工复产&#xff0c;春运迎来全面返程客流高峰&#xff0c;为应对返程客流&#xff0c;做好疫情防控工作&#xff0c;哈车管内各站全面组织积极应对&#xff0c;做好进出站旅客测温&#xff0c;加强对进出站旅客体温筛查&#xff0c;…

GPS无线视频服务器,宏电环卫车无线视频监控与GPS定位系统设计方案.docx

Connecting Things环卫车3G/4G视频监控及GPS定位系统解决方案市宏电技术股份Shenzhen Hongdian Technologies Corporation.2015年7月目录 TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc2914" 第一章 系统概述 PAGEREF _Toc2914 4HYPERLINK \l "_Toc5154&q…

css选择器权重排序_css选择器优先级高低排列_css样式权重计算和!important属性

首先我们需要知道选择器的类型有这些&#xff1a;选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的&#xff0c;在不同选择器的样式出现冲突时候&#xff0c;会采用权重高的选择器…

python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

Python Selenium Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页&#xff0c;以网页 ID 来保存为网页文件名PS:很多人在学习Python的过程中&#xff0c;往往因为遇问题解决不了或者没好的教…