根据一棵树的中序遍历与后序遍历构造二叉树。

注意:
你可以假设树中没有重复的元素。

例如,给出

中序遍历 inorder = [9,3,15,20,7]
后序遍历 postorder = [9,15,7,20,3]

返回如下的二叉树:

    3/ \9  20/  \15   7
/*** Definition for binary tree* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {return buildTree(inorder, 0, inorder.size() - 1, postorder, 0, postorder.size() - 1);}TreeNode* buildTree(vector<int> &inorder, int iLeft, int iRight, vector<int> &postorder, int pLeft, int pRight) {if (iLeft > iRight || pLeft > pRight) return NULL;TreeNode * cur = new TreeNode(postorder[pRight]);int i = 0;for (i = iLeft; i < inorder.size(); ++i) {if (inorder[i] == cur->val) break;}cur->left = buildTree(inorder, iLeft, i - 1, postorder, pLeft, pLeft + i - iLeft - 1);cur->right = buildTree(inorder, i + 1, iRight, postorder, pLeft + i - iLeft, pRight - 1);return cur;}
};

106. 从中序与后序遍历序列构造二叉树相关推荐

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

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

  2. [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]

    [问题描述][中等] [解答思路] public class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) { ...

  3. Suzy找到实习了吗Day 18 | 二叉树进行中:513 找树左下角的值,112 路径总和 ,106.从中序与后序遍历序列构造二叉树

    513 找树左下角的值 solution # Definition for a binary tree node. # class TreeNode: # def __init__(self, val ...

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

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

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

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

  6. java用中根后根序列构造二叉树,106. 从中序与后序遍历序列构造二叉树

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

  7. 【LeetCode系列】从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树 ...

  8. 数组反向遍历ios_LeetCode106.从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inor...)...

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

  9. 016.从中序与后序遍历序列构造二叉树

    题目链接: 106. 从中序与后序遍历序列构造二叉树 大概思路: 题目要求: 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder ...

  10. 代码随想录第18天|找树左下角的值,路径总和,从中序和后序遍历序列构造二叉树

    LeetCode513.找树左下角的值 题目链接:513. 找树左下角的值 - 力扣(LeetCode) 思路: 迭代法(只需要记录最后一行第一个节点的数值就可以了.): /*** Definitio ...

最新文章

  1. oracle存储过程、声明变量、for循环|转|
  2. RT-Thread的位图调度算法分析(最新版)
  3. 使用Navicat for Oracle新建用户无法登陆(用户名大小写问题)
  4. [HNOI 2015]接水果
  5. VTK:Utilities之SaveSceneToFile
  6. java 图的邻接矩阵表示,深度优先遍历,广度优先遍历
  7. java操作文件爱女_Java的IO操作---File类
  8. [luoguP1005] 矩阵取数游戏(DP + 高精度)
  9. NGUI使用教程(2) 使用NGUI创建2D场景而且加入标签和button
  10. RestExpress response中addHeader 导致stackOverflow
  11. 自己把握系统安全,Windows自启动程序的十大藏身之所
  12. python 优点_python语言有什么优势
  13. java 明华读卡器_Java调用明华RF读写器DLL文件过程解析
  14. html学术模板,学术研究介绍信模板
  15. 教你如何使用pr语音自动生成字幕,pr自动识别声音添加字幕
  16. CuraEngine切片类详解(转载)
  17. openssl官网-下载安装过程
  18. ES6 里的symbol
  19. 【讲座笔记】科研论文的构思、规划和写作--中南大帅词俊
  20. Android下修改hosts文件-重启有效

热门文章

  1. [奇葩 bug]视图在 ipad5 上正常显示,在 iPad3上超出了边界
  2. 请不要对我说“你要马上把这个小问题修改好”
  3. 由一次代码优化想到的Js 数据类型
  4. linux网络唤醒,如何在Ubuntu Server 18.04中启用网络唤醒(WOL)
  5. html5中折叠面板,Ant Design中折叠面板Collapse
  6. mysql的表导出er关系图_使用Navicat生成ER关系图并导出的方法
  7. 计算机里有个不能进入的磁盘分区,新电脑只有一个分区怎么办? 教你们如何不进pe给硬盘创建新分区!...
  8. 华为怎么升级Android11,华为EMUI 11/安卓11升级名单曝光 快来看看你的手机是否支持...
  9. python xlwt写入已有表_Python中,添加写入数据到已经存在的Excel文件
  10. NYOJ 26 孪生素数问题