LeetCode-105:从前序与中序遍历序列构造二叉树
题目描述:
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。
例如,给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:
3/ \9 20/ \15 7
思路分析:
废话不多说,直接来想思路,首先思考,根节点应该做什么。
类似上一题,我们肯定要想办法确定根节点的值,把根节点做出来,然后递归构造左右子树即可。(都是套路)
具体思路可参照公众号文章https://mp.weixin.qq.com/s/OlpaDhPDTJlQ5MJ8tsARlA
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {return build(preorder,0,preorder.length-1,inorder,0,inorder.length-1);}TreeNode build(int[] preorder,int prestart,int preend,int[] inorder,int instart,int inend){if(prestart>preend){return null;}int rootVal=preorder[prestart];int index=0;for(int i=instart;i<=inend;i++){if(inorder[i]==rootVal){index=i;break;}}int leftsize=index-instart;TreeNode root=new TreeNode(rootVal);root.left=build(preorder,prestart+1,prestart+leftsize,inorder,instart,index-1);root.right=build(preorder,prestart+leftsize+1,preend,inorder,index+1,inend);return root;}
}
LeetCode-105:从前序与中序遍历序列构造二叉树相关推荐
- leetcode 105. 从前序与中序遍历序列构造二叉树 c语言递归解法
如题: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素.例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3 ...
- leetcode 105. 从前序与中序遍历序列构造二叉树
难度:中等 频次:68 题目: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点 ...
- Leetcode 105. 从前序与中序遍历序列构造二叉树 解题思路及C++实现
解题思路: 前序遍历preorder中,第一个即为根节点,然后找到中序遍历inorder中对应的节点,则inorder中该节点之前的值均在根节点的左子树上,该节点后面的值都在根节点的右子树上,所以可以 ...
- 50. Leetcode 105. 从前序与中序遍历序列构造二叉树 (二叉树-二叉树构建)
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点.示例 1:输入: preord ...
- LeetCode 105. 从前序与中序遍历序列构造二叉树(递归)
题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 思路 详见链接 代码 #class TreeNode: # def __init__(self,x): # ...
- 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)
[LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...
- LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)
LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...
- 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)
引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...
- 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树
两题各自的链接放这里了: 链接: 106 链接: 105 106.从中序与后序遍历序列构造二叉树 如果你是不知道理论的,那就得仔细分析了, 举个例子: 输入:inorder = [9,3,15,20, ...
- 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树
题目链接: 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)leetcode-cn.com 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树,可以假设树中没有重复的元素. 示例: 前 ...
最新文章
- keepalive的 nopreempt 非抢占
- 【面向对象】基本概念
- 年薪40W,如何高效准备大厂AI算法岗面试?
- maven 集成 CXF
- 【ElasticSearch】Es 源码之 IndicesModule 源码解读
- oracle数据库存储管理总结,oracle数据库存储管理
- java之设计模式工厂三兄弟之简单工厂模式
- 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例...
- Struts中提示Invalid result location value/parameter
- 【Gym - 101848B】Almost AP【等差数列改三个数】
- 思维导图的使用场合有哪些?怎么画思维导图
- win8更改计算机锁屏时间,win8如何设置电脑屏保时间设置方法
- 【矩阵乘法】矩阵求和
- 如何在esxi环境安装硬件VIB驱动。
- xcpc近年铜牌题补题路
- KITTI数据集--参数
- (三)mmclassification图像分类——模型训练
- Android 接入VK登录
- 测试地图最短路径搜索(二):换个稍微复杂点的路径模板
- Java中final、finally、finalize的简单区别,中等区别,详细区别(Lawliet 修改+注释版)