LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)

题目:

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

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

例如,给出

前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]

返回如下的二叉树:

    3/ \9  20/  \15   7

解题模板:
Python 3:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:

解题思路:

  • 递归法:

按照先左子树,后右子树的顺序递归,直到数组的先序列表和中序列表中的元素都用完为止。

解法:

class Solution:def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:if not preorder or not inorder:returnroot = TreeNode(preorder[0])num = inorder.index(preorder[0])root.left = self.buildTree(preorder[1 : 1 + num], inorder[: num])root.right = self.buildTree(preorder[1 + num:], inorder[num + 1:])return root

时间复杂度O(N)
空间复杂度O(1)

LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)相关推荐

  1. 刷题记录8---验证二叉搜索树+二叉树的层序遍历+从前序与中序遍历序列构造二叉树+二叉树展开为链表+二叉树的最近公共祖先

    前言 所有题目均来自力扣题库中的hot 100,之所以要记录在这里,只是方便后续复习 98.验证二叉搜索树 题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树. 有效 二叉搜 ...

  2. [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]

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

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

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

  4. 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)

    [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...

  5. 二叉树的中序遍历_Go 刷 leetcode从前序与中序遍历序列构造二叉树

    今天为大家讲解 LeetCode 第 105 题,是一道关于数组和树的题目. 题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 前序遍历 pre ...

  6. leetcode 105. 从前序与中序遍历序列构造二叉树 c语言递归解法

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

  7. pat根据中序遍历和先序遍历_算法题399:从前序与中序遍历序列构造二叉树

    (给算法爱好者加星标,修炼编程内功) 来源: 数据结构和算法-山大王wld 问题描述 今天我们就不做关于双指针的了,我们爬到树上玩会儿,做一道关于二叉树的题.今天的题就一句话,根据一棵树的前序遍历与中 ...

  8. Leetcode 105. 前序和中序遍历序列构造二叉树

    Time: 20190901 Type: Medium 题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3, ...

  9. 【LeetCode笔记】105. 从前序与中序遍历序列构造二叉树(Java、递归、二叉树、哈希表)

    文章目录 题目描述 代码 & 思路 题目描述 这题主要是考察前序.后序的性质,以及相互间的关系 代码 & 思路 前序:根 - 左 - 右: 中序:左 - 根 - 右,那么用前序数组的首 ...

最新文章

  1. 观察内核linux行为,Linux 学习:基于proc观察Linux行为
  2. Scrum Mastery:有效利用组织的5个步骤
  3. 计算机计组成原理课后,计算机组成原理课后习题课(0001).doc
  4. 【计组实验】P3 Verilog多周期处理器开发 MIPS指令集
  5. 被同事嘲笑说技术方案没深度?
  6. 【渝粤教育】 广东开放大学21秋期末考试管理学基础10241k2
  7. android fragment 管理器,Android Fragment 與 Fragment管理器
  8. SRM 212 Div II Level One: YahtzeeScore
  9. Spring Boot RestTemplate 忽略证书访问https
  10. android 绘制控件,Android自定义控件绘制基本图形基础入门
  11. CCF2014123集合竞价(C语言版)
  12. 【Java中的网络编程】
  13. Linux下MySQL的基础(一)
  14. 唯有读书,能战胜这个爆炸的时代
  15. Boost Asio快速入门
  16. 明星造型师Tara Swennen和Glamhive创始人Stephanie Sprangers再次汇聚全球造型、时尚、美妆和女性赋权领域“大咖”参加突破性数字盛会
  17. 用acts_as_paranoid 做假删除
  18. python 统计英语文档词汇出现频率,以六级真题为例
  19. 函数的连续性与间断点
  20. C语言|博客作业07

热门文章

  1. 201709今日头条测试开发校招面经
  2. 如何规划、建设你的数据库架构
  3. 一个可以添加商品、查询商品的程序,登录成功的话,再去操作,添加、查询商品,添加商品也是写在文件里面...
  4. Visdrone2019数据集.txt标签文件转换为voc格式.XML标签文件
  5. 电影《摔跤吧!爸爸》四个触动我的瞬间
  6. 数字IC手撕代码-乐鑫科技笔试真题(4倍频)
  7. Git版本控制管理——提交
  8. 景安网络:根植中原厚土发力云计算巅峰
  9. 今日芯声 | Android麻烦了!鸿蒙OS将让它变得更脆弱
  10. C++内存泄漏排查以及几个工具