剑指-利用树的前序遍历和中序遍历结果,输出树的原始结构
需要注意两点:1、对于前序遍历第一个即为根节点。2、在前序遍历找到根节点之后,在中序遍历中根节点之前的全部为根节点的左子树,后面的全部为右子树。所以可以根据中序遍历中根节点之前的数量,在前序遍历中找出左子树。3、递归实现就可以。
TreeNode* reConstructBinaryTree(vector<int> pre, vector<int> vin)
{int len = pre.size();if (len == 0)return NULL;vector<int>pre_left, pre_right, in_left, in_right;int temp = pre[0];int root = 0;TreeNode* head = (TreeNode*)malloc(sizeof(TreeNode));head->val = pre[0];for (int i = 0; i < len; i++){if (temp == vin[i]){root = i;break;}}for (int j = 0; j < root; j++){pre_left.push_back(pre[j + 1]);in_left.push_back(vin[j]);}for (int j = root + 1; j < len; j++){pre_right.push_back(pre[j]);in_right.push_back(vin[j]);}head->left = reConstructBinaryTree(pre_left, in_left);head->right = reConstructBinaryTree(pre_right, in_right);return head;
}
剑指-利用树的前序遍历和中序遍历结果,输出树的原始结构相关推荐
- c++ 删除二叉树的子树_数据结构—树|二叉树|前序遍历、中序遍历、后序遍历【图解实现】...
点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 数据 结构 二叉树的遍历 一.树 在谈二叉树的知识点之前,我们首先来看一下树和图的基本概念.树:不包含回路的连通无向图,树是一种简单的非线性结构 ...
- 树的前序遍历、中序遍历、后序遍历详解
1.前序遍历 对于当前节点,先输出该节点,然后输出他的左孩子,最后输出他的右孩子.以上图为例,递归的过程如下: (1):输出 1,接着左孩子: (2):输出 2,接着左孩子: (3):输出 4,左孩子 ...
- pat根据中序遍历和先序遍历_[leetcode/lintcode 题解] 前序遍历和中序遍历树构造二叉树...
[题目描述] 根据前序遍历和中序遍历树构造二叉树. 在线评测地址: 九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧www.jiuzhang.com [样例 ...
- 【LeetCode】剑指 Offer 33. 二叉搜索树的后序遍历序列
[LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 文章目录 [LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 package offer;public cl ...
- 关于树的前序遍历,中序遍历,后序遍历的相互转化(含代码实现)
2019独角兽企业重金招聘Python工程师标准>>> 首先我们需要了解的是前序遍历.中序遍历.后序遍历的概念. 前序遍历: 1.首先访问根节点 2.然后遍历左子树 3.最后遍历右子 ...
- LintCode-73.前序遍历和中序遍历树构造二叉树
前序遍历和中序遍历树构造二叉树 根据前序遍历和中序遍历树构造二叉树. 注意事项 你可以假设树中不存在相同数值的节点 样例 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 ...
- 剑指offer之二叉搜索树的后序遍历序列
剑指offer之二叉搜索树的后序遍历序列 欢迎关注作者博客 简书传送门 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个 ...
- 剑指 Offer 33. 二叉搜索树的后序遍历序列
剑指 Offer 33. 二叉搜索树的后序遍历序列 原始题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian- ...
- 二叉树的前序遍历、中序遍历、后序遍历
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 为什么需要树这种数据结构 树的常用术语 二叉树的概念 二叉树遍历的说明 实现二叉树 实现二叉树的遍历 二叉树查找结点 二叉树 ...
- 根据二叉树前序遍历和中序遍历重建二叉树
剑指 Offer 07. 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3, ...
最新文章
- Android RecyclerView(和SnapHelper) 实现类似ViewPager的效果
- 【Servlet】response对象给用户返回数据
- BZOJ 3564 信号增幅仪
- 信息学奥赛一本通(1161:转进制)
- 22.Linux-块设备驱动之框架详细分析(详解)
- 第三季-第26课-网络并发服务器设计
- ‘’vr‘’全景抓鸡游戏总结
- 诱人的 TypeScript 视频教程(69 个视频)
- 颜色转换助手RGB888-565
- maven完全离线开发【解决jar包自动从网络下载导致打包失败】
- 记录vue预渲染prerender-spa-plugin踏坑
- 开关二极管的作用是什么
- 蚂蚁金服的to B开放
- Qt Creator 添加基于 JSON 的向导
- 网赚APP的“俄罗斯套娃”游戏
- linux无法打开或写入文件格式,Centos系统下“无法打开并写入文件”问题的解决...
- 技嘉Z68升级UEFI BIOS后要注意的事项
- 自考基础会计学可以带计算机吗,自考《基础会计学》怎么过?
- 分享我自学前端的一些学习网站
- 智能驾驶领域专业术语
热门文章
- J2SE核心开发实战(一)——认识J2SE
- stm32数据手册boot_STM32的ISP下载的原理是什么呢?
- 数据类型转换_自动转换
- 基于XML的AOP实现事务控制
- Ribbon-3使用配置文件自定义Ribbon Client
- Redis分布式锁原理解析
- 使用RAID增加传统机器硬盘的性能
- java.lang.unsatisfiedlinkerror:_java.lang.UnsatisfiedLinkError: 的问题
- 测试原理_OTDR测试原理及注意事项
- python 输出一个 5*5的 三角形_GitHub标星3W+,80个Python案例,带你轻松玩转Python学习!...