题目描述:

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

CODE:

# -*- coding:utf-8 -*-

# class TreeNode:

# def __init__(self, x):

# self.val = x

# self.left = None

# self.right = None

class Solution:

# 返回构造的TreeNode根节点

def reConstructBinaryTree(self, pre, tin):

# write code here

if len(pre) == 0: # 每次递归时,pre都会更新,当pre为0时,说明该节点下面为空。

return None

root = TreeNode(pre[0]) # 先使用每次更新的先序列表的第一个结点来创建新的结点

pos = tin.index(pre[0]) # 使用先序的第一个结点到中序 序列中找到索引位置,因为中序的这个索引位置可以将先序序列划分为左右子树

root.left = self.reConstructBinaryTree(pre[1:pos+1], tin[:pos]) # 将先序和中序的序列划分后继续进行父节点的左子树的递归。

root.right = self.reConstructBinaryTree(pre[pos+1:],tin[pos+1:]) # 同上。

return root

python中二维数组如何查找_【剑指offer】---二维数组中的查找(Python)相关推荐

  1. python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

    点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...

  2. 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找

    点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...

  3. 剑指offer 二维有序数组查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. java 解决方案:暴 ...

  4. 剑指Offer 二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路法一: * 矩阵是 ...

  5. 剑指offer - 二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. /* 思路 * 矩阵是 ...

  6. 【二分法】剑指offer:二维数组中的查找

    对于二维数组中每一个一维数组,用二分查找,判断能否找到该数 leetcode专题笔记:二分法查找(1)(附leetcode题)_m0_52043808的博客-CSDN博客 代码: class Solu ...

  7. 剑指Offer——二维数组的查找(C语言)

    题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 数据范围 二维数组中元素 ...

  8. opencv计算两数组的乘积_#剑指Offer#12. 构建乘积数组

    题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1]. 其中B中的元素B[i]=A[0] * A[1]... * A[i-1] * A[i+1]... * A ...

  9. python删除链表中重复的节点_剑指offer:删除链表中重复的节点

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  10. 【剑指offer】数据结构——数组

    目录 数据结构--数组 直接解 [剑指offer]03.数组中重复的数字 排序法 集合法 原地置换 [剑指offer]04. 二维数组中的查找 [剑指offer]29. 顺时针打印矩阵 [剑指offe ...

最新文章

  1. etcd与mysql_一、配置etcd数据库
  2. docker客户端连接远程docker服务端(export方式)
  3. kibana java script_Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布 - TGCode...
  4. 计算机excel图表考试题库,2016年职称计算机考试Excel操作题库
  5. 2018年,加油!!!
  6. java url压缩_URL压缩算法的短地址
  7. 数据分析中常用的数据模型
  8. 创造or变革:卡萨帝为何能重塑高端品质生活?
  9. 使用 SpiritManager 类管理在 XNA 游戏中的精灵(十四)
  10. 信息技术(计算机基础知识精华版)
  11. C#之Chart控件使用
  12. 从“果链”到新能源,立讯精密的B端生意成色几何?
  13. 锂电池电量百分比计算_锂电池容量计算的方法
  14. Ubuntu离线网卡驱动安装
  15. 九爷带你了解 zabbix 飞信以及机器人报警
  16. Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...'
  17. 全民远程办公的第一天,为什么你的视频会议卡住了?
  18. 领导者应具备的三个能力
  19. Glyphs 3 for mac(字体设计软件)
  20. 大武口计算机考试培训,大武口电脑培训地址

热门文章

  1. 一个内存增长问题的分析和处理(二)——valgrind工具的用法
  2. 一个Form中2个按钮,PHP后台如何判断提交的是哪一个按钮
  3. 深入剖析Redis事件驱动
  4. 使用Eclipse调试Android Native Application---cocos2d-x + Eclipse + Android + ndk
  5. UVa 1326 - Jurassic Remains
  6. [Remoting]dotNet Framework升级后Remoting信道使用的安全问题
  7. django之路由分组,路由分发,FBV,CBV,ORM框架
  8. 第76节:Java中的基础知识
  9. oracle数据库主主复制
  10. Entity Framework安装方法