二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)
17(105) 从前序与中序遍历序列构造二叉树(Medium)
描述
根据一棵树的前序遍历与中序遍历构造二叉树。
注意: 你可以假设树中没有重复的元素。
示例
例如,给出前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ 9 20/ 15 7
Description
Given preorder and inorder traversal of a tree, construct the binary tree.
Note: You may assume that duplicates do not exist in the tree.
Example
For example, givenpreorder = [3,9,20,15,7]
inorder = [9,3,15,20,7]
Return the following binary tree:3/ 9 20/ 15 7
BitDance
Amazon
Microsoft
Adobe
Apple
Google
Tencent
Mi
HuaWei
VMware
解题
递归解法
class Solution {public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {if(preorder.empty()) return NULL;TreeNode* root=new TreeNode(preorder[0]);vector<int> preorder_left, inorder_left, preorder_right, inorder_right;int i;for(i=0;i<inorder.size();++i){if(inorder[i]==root->val) break;inorder_left.push_back(inorder[i]);}//中序遍历根结点的左子树存入inorder_leftfor(++i;i<inorder.size();++i){inorder_right.push_back(inorder[i]);}//中序遍历根结点的右子树存入inorder_rightfor(int j=1;j<preorder.size();++j){//根据中序遍历左子树的长度来确定前序遍历左子树存入preorder_leftif(j<=inorder_left.size()) preorder_left.push_back(preorder[j]);//前序遍历剩下的为右子树 存入前序遍历右子树序列preorder_rightelse preorder_right.push_back(preorder[j]);}root->left=buildTree(preorder_left,inorder_left);root->right=buildTree(preorder_right,inorder_right);return root;}
};
二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)相关推荐
- 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树
题目链接: 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)leetcode-cn.com 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树,可以假设树中没有重复的元素. 示例: 前 ...
- 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)
引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...
- [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]
[问题描述][中等] 根据一棵树的前序遍历与中序遍历构造二叉树.注意: 你可以假设树中没有重复的元素.例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = ...
- 72.编辑距离105.前序中序遍历序列构造二叉树151.翻转字符串里的单词104.二叉树的最大深度76.最小覆盖子串110.平衡二叉树31.下一个排列
72.编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 .你可以对一个单词进行如下三种操作:插入一个字符,删除一个字符,替换一个字符. ...
- LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)
LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...
- 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)
[LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...
- 找树左下角的值+路径总和+从前序和中序遍历序列构造二叉树(day18*)
这篇可以主要关注一下如何确定递归时是否需要返回值. LC513. 找树左下角的值 给定一个二叉树的根节点,请找出该二叉树的 最底层最左边 节点的值. 思路1 层序遍历 class Solution:d ...
- Suzy找到实习了吗Day 18 | 二叉树进行中:513 找树左下角的值,112 路径总和 ,106.从中序与后序遍历序列构造二叉树
513 找树左下角的值 solution # Definition for a binary tree node. # class TreeNode: # def __init__(self, val ...
- 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树
两题各自的链接放这里了: 链接: 106 链接: 105 106.从中序与后序遍历序列构造二叉树 如果你是不知道理论的,那就得仔细分析了, 举个例子: 输入:inorder = [9,3,15,20, ...
最新文章
- ftp 文件完整性校验_FTP空间是什么?如何获取免费FTP空间吗?
- android jni fork()子进程不运行_安卓系统最重要的进程之一:system_server详细分析...
- Python语言防坑小技巧
- rabbitmq的启动命令和springboot整合使用rabbitmq
- vim+linux+ctags+taglist+winmanager+grep+cscope+supertab+visualmark--ctags
- python pygame模块怎么写游戏_使用 Python 和 Pygame 模块构建一个游戏框架
- Android 简单几行代码实现摇一摇功能
- 基于opencv的gpu与cpu对比程序,代码来自opencv的文档中
- linux java文件 core_linux下部署.net core/java
- 备份事务日志时遇到 log corruption
- 2.5D休闲娱乐生活类插画素材,给设计添彩!
- 怎样才能知道自己的手机是否支持北斗导航?
- centos如何界面操作mysql_【mysql】centos7下mysql的安装以及基本操作
- Latex 摘要排版
- 飞塔防火墙服务激活操作步骤
- 公众号附件链接怎么放?
- 曾仕强《领导的沟通艺术》读书笔记
- SAP系统 - ABAVN固定资产报废解析之完全报废案例
- cesium 建筑物加载(带高度)
- 业务系统里的Office文档如何在线编辑
热门文章
- 编程贺卡c语言,C++实现新年贺卡程序
- BugkuCTF-Crypto题Crack it
- 迷你世界显示未连接服务器成功,迷你世界登录未成功是什么意思 | 手游网游页游攻略大全...
- java缩写_Java学习-Java缩写词的意思
- mysql筛选两个表有相同项的数据库_用SQL查询两个表中相同的数据
- 怎么将翼型导入catia_CATIA导入翼型出现了问题,翼型是在网上找的。说是样条线运算有问题 - 机械 - 小木虫 - 学术 科研 互动社区...
- mysql还原txt表的字段结构,mysql 修改表结构(转)
- 所有的service报红但不报错_从一个应用报错来看centos系统的/tmp目录自动清理规则...
- 计算机网络拓扑结构说课稿,计算机网络应用基础说课稿修稿稿
- android url 快捷方式,Android向桌面添加快捷方式,使其指向特定的(URL)网页