描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。
例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。

提示:
1.vin.length == pre.length
2.pre 和 vin 均无重复元素
3.vin出现的元素均出现在 pre里
4.只需要返回根结点,系统会自动输出整颗树做答案对比 数据范围:n \le 2000n≤2000,节点的值 -10000 \le val \le 10000−10000≤val≤10000 要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)

示例1 输入: [1,2,4,7,3,5,6,8],[4,7,2,1,5,3,8,6] 返回值:{1,2,3,4,#,5,6,#,7,#,#,8} 说明:返回根节点,系统会输出整颗二叉树对比结果,重建结果如题面图示

示例2 输入:[1],[1] 返回值:{1}

示例3 输入:[1,2,3,4,5,6,7],[3,2,4,1,6,5,7] 返回值:{1,2,5,3,4,6,7}

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pre int整型一维数组
# @param vin int整型一维数组
# @return TreeNode类
#
class Solution:def reConstructBinaryTree(self , pre: List[int], vin: List[int]) -> TreeNode:# write code herem = len(pre)n = len(vin)if m == 0 or n == 0:return Noneroot = TreeNode(pre[0])for i in range(len(vin)): if vin[i] == root.val:leftpre = pre[1:i+1]leftvin = vin[0:i]root.left = self.reConstructBinaryTree(leftpre, leftvin)rightpre = pre[i+1:m]rightvin = vin[i+1:n]root.right = self.reConstructBinaryTree(rightpre, rightvin)return root

python:重建二叉树相关推荐

  1. python实现二叉树的重建2 之由中序遍历和后序遍历重建

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

  2. python根据二叉树的前序遍历和中序遍结果历重建二叉树

    python根据二叉树的前序遍历和中序遍结果历重建二叉树 前序遍历 对于当前节点,先输出该节点,然后输出他的左孩子,最后输出他的右孩子.以上图为例,递归的过程如下: (1):输出 1,接着左孩子: ( ...

  3. 用前序和中序重建二叉树 python

    程序实现了用二叉树的前序遍历序列和中序遍历序列重建二叉树,代码用python实现. 首先定义二叉树节点的类: 1 class TreeNode: 2 def __init__(self, x): 3 ...

  4. 剑指offer_第4题_重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果 请重建出该二叉树 假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  5. 【剑指offter】重建二叉树

    题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7 ...

  6. 剑指offer第7题 重建二叉树

    前言 该系列文章为本人刷leetcode的记录,主要旨在分享刷题的思路及算法解析(尽可能的一题多解),另方便自己日后查阅回顾.代码的实现语言是python和go. 想进大厂免不了刷题,一起加油吧,小伙 ...

  7. 剑指offer:面试题07. 重建二叉树

    题目: 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7 ...

  8. 根据二叉树的前序遍历和中序遍历重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  9. python判断二叉树是否为平衡二叉树

    python判断二叉树是否为平衡二叉树 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点.一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列.在学习与总结的同时更加 ...

最新文章

  1. js,jquery 根据对象某一属性进行排序
  2. 只用一张图+相机走位,AI就能脑补周围环境,来自华人团队 | CVPR2022
  3. 【机器学习算法-python实现】svm支持向量机(3)—核函数
  4. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression
  5. 剑指Offer名企面试官精讲典型编程题pdf
  6. 使用Guava retryer优雅的实现接口重试机制
  7. 大写的“极简” H3C MSG360系列网关
  8. [转]淘宝sdk——入门实战之header.php制作(二)
  9. 优秀的UI/UX设计师需要具备哪些技能?
  10. 3D游戏建模概念设计流程
  11. 北美周末票房榜TOP10 (06.21-23)
  12. php把十二生肖排列,12生肖怎么排 十二生肖如何排序
  13. Arduino控制RGB灯(WS2812B)
  14. Kdevelop安装与使用说明
  15. 014 Rust死灵书之显式类型转换
  16. spotify 缓存_如何在Spotify中获得最佳音质
  17. php 获取用户的IP
  18. 如何理解深度学习中的tensor(涉及numpy的二维,三维以及四维数据的理解)
  19. 在网页中加入Flash的代码
  20. java计算机毕业设计消防网站源码+系统+数据库+lw文档+mybatis+运行部署

热门文章

  1. C语言实现 开灯问题
  2. 软件测试中常见的几种模型
  3. Goroutine被动调度之一(18)
  4. 2022 主站及创作侧年度总结 - 相信未来、期待未来
  5. 面试直通卡大放送,微软面试官带你揭秘面试潜规则!
  6. Python量化数据获取:综合指数介绍及如何获取数据
  7. 基于稀疏网的PPP-RTK理论与应用-笔记
  8. 计算机设置页眉教案,初中信息技术沪教版七年级下册第三单元第6课《设置页眉和页脚》优质课公开课教案教师资格证面试试讲教案...
  9. WPS中将公式居中,序号在最右边
  10. mysql语法大全和jdbc知识汇总