前言

通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了

code

# 通用解法def buildTree(self, inorder, postorder):""":type inorder: List[int]:type postorder: List[int]:rtype: TreeNode"""if inorder:idx = inorder.index(postorder.pop())root = TreeNode(inorder[idx])root.right = self.buildTree(inorder[idx+1:], postorder)root.left = self.buildTree(inorder[:idx], postorder)return root# 优化解法def buildTree1(self, inorder, postorder):""":type inorder: List[int]:type postorder: List[int]:rtype: TreeNode"""length = len(postorder)if length == 0:return Nonei, j = length - 2, length - 1root = TreeNode(postorder[length-1])stack = [root]while i >=0:node = TreeNode(postorder[i])tmp = Nonewhile stack and stack[-1].val == inorder[j]:tmp = stack.pop()j -= 1if tmp:tmp.left = nodeelse:stack[-1].right = nodestack.append(node)i -= 1return root

python实现二叉树的重建2 之由中序遍历和后序遍历重建相关推荐

  1. python实现二叉树遍历(前序遍历、中序遍历、后序遍历)

    python实现二叉树遍历(前序遍历.中序遍历.后序遍历) 在计算机科学中,二叉树是一种树数据结构,其中每个节点最多有两个子节点,称为左子节点和右子节点.使用集合理论概念的递归定义是(非空)二叉树是元 ...

  2. 二叉树的前序遍历,中序遍历,后序遍历-详解-配套例题

    二叉树作为数据结构中一种简单而且重要的数据结构,他的存储结构和算法都相对比较简单,因此他也显得特别重要,因为很多问题都可以抽象为二叉树的问题. 在这里我们对于二叉树的基本概念不做详细介绍,我们这里主要 ...

  3. 二叉树的前序遍历,中序遍历,后序遍历学习 (原)

    经验: 不要死记各个遍历节点的位置,将一个复杂的二叉树当作一个个小的二叉树学习前序遍历,中序遍历,后序遍历会更容易理解 转载于:https://www.cnblogs.com/gyrgyr/p/962 ...

  4. 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...

    已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法 #define N 10 //二叉树节点的个数 char postorderstr[]={};//后序序列 char i ...

  5. 已知二叉树的前序遍历、中序遍历或者中序遍历、后序遍历求二叉树结构的算法

    二叉树中的前序遍历是先访问根结点,再访问左子树,右子树. 中序遍历是先访问左子树,再是根结点,最后是右子树. 后序遍历是先访问左子树,再是右子树,最后是根结点. 算法思路是先根据前序遍历的第一个结点或 ...

  6. 数据结构与算法之二叉树的先序遍历,中序遍历,后序遍历

    数据结构与算法之二叉树的先序遍历,中序遍历,后移遍历 目录 实现二叉树的先序,中序,后序遍历,包括递归方式和非递归方式 在二叉树中找到一个节点的后继节点 1. 实现二叉树的先序,中序,后序遍历,包括递 ...

  7. C实现二叉树的先序遍历,中序遍历,后序遍历

    1  要创建的二叉树图 2 输出结果图 : 3 完整代码如下: #include<stdio.h> #include<malloc.h>//定义二叉树 typedef stru ...

  8. C/C++二叉树前序遍历,中序遍历,后序遍历

    二叉树的先序遍历,中序遍历,后序遍历 #include <iostream>using namespace std;typedef struct BTNode {char data;str ...

  9. 二叉树的创建、前序遍历、中序遍历、后序遍历

    二叉树的创建.前序遍历.中序遍历.后序遍历 // BTree.cpp : Defines the entry point for the console application. /*  作者:成晓旭 ...

  10. 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)

    7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...

最新文章

  1. 程序运行慢?你怕是写的假 Python
  2. 基于Transformer的高效、低延时、流式语音识别模型
  3. python内置数据结构之str
  4. 国家计算机病毒中心发现“网游大盗”新变种
  5. 3高并发服务器:多路IO之epoll
  6. pytorch基础知识+构建LeNet对Cifar10进行训练+PyTorch-OpCounter统计模型大小和参数量+模型存储与调用
  7. 转:Openflashchart笔记
  8. Excel VBA 循环读取一个目录下面多个文件的内容,放到另外一个文件中
  9. 一个长方体玻璃容器从里面量长宽_葡萄干这样吃,功效翻倍,含铁量是葡萄的15倍!葡萄干的功效和作用...
  10. 拓端tecdat|R语言用多重插补法估算相对风险
  11. linux文件传输阻塞了,Linux 中的read系统调用到底是阻塞还是非阻
  12. 【caffe】Layer解读之:Date
  13. c语言数组的地址传递,c语言函数传递数组_c语言函数数组地址传递没有输出
  14. WindowsAPI 之 CreatePipe、CreateProcess
  15. DAY02,C语言基础编程题
  16. 极限-快速判断变限积分的等价无穷小阶数
  17. 01炼数成金TensorFlow基本概念
  18. 2021 CCPC 哈尔滨 E. Power and Modulo (思维题)
  19. [软件测试]怎么测试一个杯子
  20. 使用matplotlib画3d平面风场_新篇章:12激光SLM金属3D打印机开卖,速度提升20倍,工业批量化生产新利器...

热门文章

  1. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin
  2. OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
  3. 快速排序的递归和非递归实现 c语言版本
  4. 将request中的所有参数存放到自定义的map中
  5. 基于Android和SpringBoot的购物App
  6. LeetCode中等题之重排数字的最小值
  7. 在 CUDA C/C++ kernel中使用内存
  8. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事
  9. PyTorch神经网络集成技术
  10. NVIDIA深度学习Tensor Core性能解析(上)