二叉树的中序遍历_Go 刷 leetcode从前序与中序遍历序列构造二叉树
今天为大家讲解 LeetCode 第 105 题,是一道关于数组和树的题目。
题目描述
根据一棵树的前序遍历与中序遍历构造二叉树。
注意: 你可以假设树中没有重复的元素。
例如,给出
前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树:
3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
preorder第一个元素为root,在inorder里面找到root,在它之前的为左子树(长stopIndex),之后为右子树。preorder[1]到preorder[stopIndex]为左子树,之后为右子树,分别递归。
代码实现
//go/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func buildTree(preorder []int, inorder []int) *TreeNode { if len(preorder) == 0 { return nil } root := &TreeNode{preorder[0], nil, nil} i := 0 // 在inorder里root的下标 for ; i len(inorder); i++ { if inorder[i] == preorder[0] { break } } // root前的长度,即左子树的长度 stopIndex := len(inorder[:i])+1 root.Left = buildTree(preorder[1:stopIndex], inorder[:i]) root.Right = buildTree(preorder[stopIndex:], inorder[i+1:]) return root}
郑重声明:
所展示代码已通过 LeetCode 运行通过,请放心食用~
推荐阅读
leetcode|被一道美团面试题转晕
学习交流 Go 语言,扫码回复「进群」即可
站长 polarisxu
自己的原创文章
不限于 Go 技术
职场和创业经验
Go语言中文网
每天为你
分享 Go 知识
Go爱好者值得关注
二叉树的中序遍历_Go 刷 leetcode从前序与中序遍历序列构造二叉树相关推荐
- LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)
LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...
- 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)
[LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...
- 【LeetCode系列】从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树 ...
- 刷题记录8---验证二叉搜索树+二叉树的层序遍历+从前序与中序遍历序列构造二叉树+二叉树展开为链表+二叉树的最近公共祖先
前言 所有题目均来自力扣题库中的hot 100,之所以要记录在这里,只是方便后续复习 98.验证二叉搜索树 题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树. 有效 二叉搜 ...
- [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]
[问题描述][中等] [解答思路] public class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) { ...
- [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]
[问题描述][中等] 根据一棵树的前序遍历与中序遍历构造二叉树.注意: 你可以假设树中没有重复的元素.例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = ...
- 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树
题目链接: 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)leetcode-cn.com 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树,可以假设树中没有重复的元素. 示例: 前 ...
- 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树
两题各自的链接放这里了: 链接: 106 链接: 105 106.从中序与后序遍历序列构造二叉树 如果你是不知道理论的,那就得仔细分析了, 举个例子: 输入:inorder = [9,3,15,20, ...
- 72.编辑距离105.前序中序遍历序列构造二叉树151.翻转字符串里的单词104.二叉树的最大深度76.最小覆盖子串110.平衡二叉树31.下一个排列
72.编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 .你可以对一个单词进行如下三种操作:插入一个字符,删除一个字符,替换一个字符. ...
最新文章
- Python基础——Anaconda的安装使用
- ubuntu20.0.4如何更新软件源?快速更新阿里源步骤具体实现
- java log4j 多个文件_java – Log4j:每个请求一个日志文件
- 【好文】为什么必须学好.Net Core?怎样弯道超车新年高薪?这样做,一周就够了!(文末彩蛋)...
- 照相机滤镜使用,优化解码和滤镜导致的预览卡屏现象
- ​《麻省理工科技评论》选出2019年全球十大突破性技术
- Python爬取抖音app视频
- 定时执行sql统计数据库连接数并记录到表中
- Pycharm中SQL语句提示SQL Dialect is Not Configured
- 智慧书-永恒的处世经典格言:121-160
- php中session销毁,PHP中session变量的销毁
- 心形灯c语言程序,用C语言实现心形表白程序[酷炫动态版]
- gif透明背景动画_如何利用premiere制作GIF动态图片
- 图像质量评价指标FID、LPIPS、NIQE及其代码
- ChatGPT聊天机器人如何发图片????
- Neural Networks Basics
- HashMap 的底层原理
- linux shell脚本编写 | 三角形 | 梯形 | 菱形 | 九九乘法表 | 矩形 | 超详细
- 添加、修改、删除以及查看本地git的用户名和邮箱
- 美团,大众下拉菜单的实现