leetcode105 前序中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。
例如,给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:
3
/ \
9 20
/ \
15 7
思路:
1、前序序列第一个是根
2、根据根在中序序列中找到
3、对左右子树做同样的操作(操作返回的结果就是根的左右孩子)
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {if(preorder.length==0)return null; TreeNode root = new TreeNode(preorder[0]);int num=0;for(int i =0; i<inorder.length; i++){if(inorder[i]==root.val){num=i;break;}}int[] preLeft = Arrays.copyOfRange(preorder,1,num+1);int[] preRight = Arrays.copyOfRange(preorder,num+1,preorder.length); int[] inoLeft = Arrays.copyOfRange(inorder,0,num);int[] inoRight = Arrays.copyOfRange(inorder,num+1,inorder.length);root.left=buildTree(preLeft,inoLeft);root.right=buildTree(preRight,inoRight);return root;}
}
leetcode105 前序中序遍历序列构造二叉树相关推荐
- 72.编辑距离105.前序中序遍历序列构造二叉树151.翻转字符串里的单词104.二叉树的最大深度76.最小覆盖子串110.平衡二叉树31.下一个排列
72.编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 .你可以对一个单词进行如下三种操作:插入一个字符,删除一个字符,替换一个字符. ...
- 【LeetCode系列】从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树 ...
- 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)
引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...
- [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]
[问题描述][中等] 根据一棵树的前序遍历与中序遍历构造二叉树.注意: 你可以假设树中没有重复的元素.例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = ...
- 二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)
17(105) 从前序与中序遍历序列构造二叉树(Medium) 描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 示例 例如,给出前序遍历 preorder = ...
- 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)
[LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...
- 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树
题目链接: 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)leetcode-cn.com 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树,可以假设树中没有重复的元素. 示例: 前 ...
- 找树左下角的值+路径总和+从前序和中序遍历序列构造二叉树(day18*)
这篇可以主要关注一下如何确定递归时是否需要返回值. LC513. 找树左下角的值 给定一个二叉树的根节点,请找出该二叉树的 最底层最左边 节点的值. 思路1 层序遍历 class Solution:d ...
- 由序列确定二叉树:前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 代码实现(c语言)
下面三种序列可以唯一的构造唯一的一棵二叉树: 前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 #include<stdio.h> #inc ...
最新文章
- 自定义控件:下拉刷新
- vscode多个光标_21 个VSCode 快捷键,让代码更快,更有趣
- html5爱情树怎么修改,jQuery结合HTML5制作的爱心树表白动画
- Java怎么不启动_dubbo不启动了怎么回事???一模一样的另一个没问题
- 软件集成策略故事连载----集成这破活儿
- Micmac摄影测量软件介绍
- Redis(RedisTemplate)使用hash哈希
- 用OpenStack构建“区域医疗”云平台
- 常用软件版本号及软件安装包格式
- 韩立刚计算机网络笔记-第01章 计算机网络详解
- pre-trained模型的使用
- 中国这10家慕课网站,您需要知道
- 2021年施工员-装饰方向-岗位技能(施工员)免费试题及施工员-装饰方向-岗位技能(施工员)复审考试
- 加速编码的17款最棒的CSS工具
- iOS开发 info.plist设置app启动页面
- Mysql实现排名及指定内容查询排名
- WebSocket(二) -- 使用原生webSocket实现一个简单的聊天
- UML的九种图+包图
- JSR 310日期时间API
- C++11 FAQ中文版
热门文章
- 基于SIP协议的视频通讯
- cs架构用什么语言开发_用Rust语言开发微信小程序
- SpringMVC遇到的问题——GET http://localhost/spring_mvc_war_exploded/js/jquery-3.3.1.js net::ERR_ABORTED 404
- 扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径
- ROS launch文档介绍
- oracle insert 当前时间_Oracle知识点总结
- 【JS 逆向百例】网洛者反爬练习平台第四题:JSFuck 加密
- 【HDU - 4786 】Fibonacci Tree (最小生成树变形,上下界贪心,tricks)
- 【ZOJ - 3946】Highway Project(最短路子图,维护双权值,贪心,最小树形图)
- 可以使用田忌赛马类贪心问题的前提(或说 如何判断题目符合田忌赛马类贪心问题)