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

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

例如,给出

中序遍历 inorder = [9,3,15,20,7]
后序遍历 postorder = [9,15,7,20,3]
返回如下的二叉树:

3
   / \
  9  20
    /  \
   15   7

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:n = len(inorder)m = len(postorder)if m != n:return Nonemapper = {}for index,num in enumerate(inorder):mapper[num] = indexreturn self.build(postorder,0,n-1,mapper,0,m-1)def build(self,postorder,postLeft,postRight,mapper,inLeft,inRight):if postLeft>postRight or inLeft>inRight:return Noneroot_val = postorder[postRight]root = TreeNode(root_val,None,None)index = mapper.get(root_val)root.left = self.build(postorder,postLeft,postRight-inRight+index-1,mapper,inLeft,index-1)root.right = self.build(postorder,postRight-inRight+index,postRight-1,mapper,index+1,inRight)return root

[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. android命令行工具 混淆,Android 混淆代码学习以及Android加密工具--APKProtect的使用ZZ...
  2. 今天我的Windows Phone 7 HTC HD7 手机 升级 NoDo 了 分享一下经验
  3. NeurIPS 2020 大变动,领域主席可拒稿20%,作者即评审,布局远程会议!
  4. ubuntu 16.4 安装postgreSQL,使C++链接到数据库
  5. springboot 物联网_Confluent Kafka,KSQL,Spring Boot和分布式SQL开发物联网实战
  6. Ofbiz架构讲解与讨论(crud)
  7. SQL Server where和having区别
  8. python 极速后台开发框架_基于FastAdmin快速搭建后台管理系统
  9. linux命令获取显示器信息,如何确定液晶显示器是否从Linux命令行打开
  10. VirtualBox使用教程
  11. Android应用优化之冷启动优化
  12. Android Backup功能之全面实战
  13. Hulu斩获两枚艾美奖提名!(附第68届艾美奖重要奖项提名名单)
  14. php phalcon 安装,安装phalcon 开发工具
  15. 微服务中的服务发现是什么?
  16. english book1 unit8
  17. 自动复制吱口令html,【月入六万】吱口令,网页自动复制,进支付宝提示领红包源码...
  18. H3C交换机查询光功率
  19. arachni_web显示500,We‘re sorry, but something went wrong.
  20. FPGA学习经验(BBS论坛)

热门文章

  1. TCP协议疑难杂症全景解析|硬核
  2. 实战能力|一文看懂GDB调试上层实现
  3. 超清晰的 DNS 原理入门指南
  4. JAVA通信编程(二)——如何读取java的properties配置文件(插播)
  5. 云游戏是大厂的“游戏”之腾讯云云游戏指南
  6. Xilinx软硬IP双管齐下解决音视频处理痛点
  7. 揭秘腾讯会议背后的视频编码“神器”
  8. 「推荐系统」 领域的最新进展你知道么?
  9. 万字长文带你深入浅出 Golang Runtime
  10. Google: 如何做code review?