解题思路:

前序遍历preorder中,第一个即为根节点,然后找到中序遍历inorder中对应的节点,则inorder中该节点之前的值均在根节点的左子树上,该节点后面的值都在根节点的右子树上,所以可以使用递归构建二叉树,分别对其左子树的节点、右子树的节点构建数。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {return conTree(preorder, 0, preorder.size()-1, inorder, 0, inorder.size()-1);}TreeNode* conTree(vector<int>& preorder, int pl, int pr, vector<int>& inorder, int il, int ir){if(pl > pr || il > ir)return NULL;TreeNode* root = new TreeNode(preorder[pl]);for(int i = il; i <= ir; i++){if(preorder[pl] == inorder[i]){root->left = conTree(preorder, pl+1, pl+i-il, inorder, il, i-1);root->right = conTree(preorder, pl+i-il+1, pr, inorder, i+1, ir);break;}}return root;}
};

Leetcode 105. 从前序与中序遍历序列构造二叉树 解题思路及C++实现相关推荐

  1. leetcode 105. 从前序与中序遍历序列构造二叉树 c语言递归解法

    如题: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素.例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3 ...

  2. leetcode 105. 从前序与中序遍历序列构造二叉树

    难度:中等 频次:68 题目: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点 ...

  3. 50. Leetcode 105. 从前序与中序遍历序列构造二叉树 (二叉树-二叉树构建)

    给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点.示例 1:输入: preord ...

  4. LeetCode 105. 从前序与中序遍历序列构造二叉树(递归)

    题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 思路 详见链接 代码 #class TreeNode: # def __init__(self,x): # ...

  5. 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)

    [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...

  6. LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)

    LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...

  7. 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)

    引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...

  8. 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树

    两题各自的链接放这里了: 链接: 106 链接: 105 106.从中序与后序遍历序列构造二叉树 如果你是不知道理论的,那就得仔细分析了, 举个例子: 输入:inorder = [9,3,15,20, ...

  9. 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树

    题目链接: 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树,可以假设树中没有重复的元素. 示例: 前 ...

最新文章

  1. P4145 上帝造题的七分钟2 / 花神游历各国(线段树区间开平方)
  2. SUN PORTAL 7.2安装在windows 的问题解决办法!
  3. java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
  4. [trustzone]-ARM Core的扩展和ELx级别的切换过程
  5. 解决在使用 Qt 编译项目时出现 “C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode格式以防止数据丢失“ 的警告
  6. QML中导入JavaScript资源
  7. 牛客 - 共鸣问题(贪心+思维)
  8. 端口复用突破防火墙(图)
  9. mongodb php 扩展 linux,CentOS Linux 安装PHP的MongoDB扩展
  10. 科研绘图工具软件_如何在Windows 10 Mail中使用绘图工具
  11. Winform控件扩展
  12. 我实在不懂Python的Asyncio
  13. Homebrew OS X 不可或缺的套件管理器
  14. 多stream_基础之Lambda和Stream的邂逅
  15. 交叉熵代价函数(损失函数)及其求导推导
  16. php怎么写脚本,PHP脚本来写Daemon程序_php
  17. java web从入门到精通 明日科技 源码_Java Web 从入门到精通(明日科技)
  18. Geth私链的多节点运行
  19. 李云赫天津大学计算机,祝贺创业谷涌现全国自强之星,同济创业谷,陪伴这个世上最有梦想的人...
  20. 【C++】三大易混概念之覆盖

热门文章

  1. vue根据索引删除数组中的一个对象_Vue实现动态添加或者删除对象和对象数组的操作方法...
  2. tcp连接 本地端口_Windows开启端口转发功能
  3. python读excel字体颜色_python 设置 excel 单元格颜色填充和字体效果
  4. 埃洛等级分系统【转自百度百科】
  5. Java程序设计第三次作业
  6. 蓝桥杯单片机练习_第九届彩灯控制器
  7. 6 有序集合ZSet(Sorted Set)
  8. EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能
  9. SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
  10. string.Join和Reverse的简单使用示例