二叉树的镜像(数组,前后 遍历重建二叉树)
题目描述
输入描述:
二叉树的镜像定义:源二叉树 8/ \6 10/ \ / \
5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <vector> #include <algorithm> using namespace std;struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x):val(x),left(NULL),right(NULL){} };class Solution { public:void Mirror(TreeNode *pRoot){if(pRoot==NULL)return ;TreeNode *tmpNode;if(pRoot->left||pRoot->right){tmpNode=pRoot->left;pRoot->left=pRoot->right;pRoot->right=tmpNode;if(pRoot->left){Mirror(pRoot->left);}if(pRoot->right){Mirror(pRoot->right);}}}TreeNode* ConstructT(int *preorder,int *inorder,int len){TreeNode* pRoot = (TreeNode*)malloc(sizeof(TreeNode));int index =0;while(inorder[index]!=preorder[0]&&index<len){index++;}if(index==len){return NULL;}pRoot->val=preorder[0];pRoot->left=ConstructT(preorder+1,inorder,index);pRoot->right=ConstructT(preorder+index+1,inorder+index+1,len-index);return pRoot;}void PrintPreorder(TreeNode *pRoot){if(pRoot){cout<<pRoot->val;PrintPreorder(pRoot->left);PrintPreorder(pRoot->right);}} };int main() {Solution s;TreeNode* pRoot;int preorder[]={8,6,5,7,10,9,11};int inorder[]={5,6,7,8,9,10,11};int len=7;pRoot=s.ConstructT(preorder,inorder,len);s.PrintPreorder(pRoot);s.Mirrior(pRoot);s.PrintPreorder(pRoot);return 0; }
转载于:https://www.cnblogs.com/dshn/p/9014424.html
二叉树的镜像(数组,前后 遍历重建二叉树)相关推荐
- 二叉树 | 根据前序中序遍历重建二叉树
Thinking 如果给你一颗二叉树的前序序列和中序序列,让你输出它的后序序列,你会怎么做呢? 也许很多同学能够很快的在纸上将一颗简单的二叉树画出来,但如果真正让你将自己的思路转换为算法,你会去怎样实 ...
- 根据二叉树的前序遍历和中序遍历重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- 二叉树(14)----由前序遍历和中序遍历重建二叉树,递归方式
相关链接: 链表总结----链表面试题合集 二叉树----二叉树面试题合集 1.二叉树定义 typedef struct BTreeNodeElement_t_ {void *data; } BTre ...
- 根据二叉树前序遍历和中序遍历重建二叉树
剑指 Offer 07. 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3, ...
- 二叉树的建立与遍历_51、二叉树遍历-重建二叉树JZ4
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- 前序遍历+中序遍历重建二叉树
文章目录 题目 AC代码 题目 本题链接:剑指 Offer 07. 重建二叉树 注:链接题目仅代表和本题大体相似 因为是考研笔试,本题代码以C语言去写 AC代码 代码解释:本题要求就是给定两个序列:分 ...
- C/C++面试题—重建二叉树【前序 + 中序- 重建二叉树 和 后序 + 中序 - 重建二叉树】
题目介绍 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{ ...
- 103. 二叉树的锯齿形层次遍历/102. 二叉树的层序遍历
2020-05-24 1.题目描述 二叉树的锯齿形层次遍历 2.题解 对于层次遍历而言,就是广度优先,由于题目要求奇数层逆序,我们可以 1)使用双端队列,奇偶性不同,则出入队列方式不同. 2)对于偶数 ...
- 根据中序、前序遍历重建二叉树
文章目录 题目 递归 思路 细节 易错 代码 复杂度分析 迭代 思路 细节 易错 代码 复杂度分析 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都 ...
最新文章
- oracle和mysql文件怎么打开_Oracle vs Mysql--架构、sql查询执行流程及SQL解析顺序区别说明-sql文件怎么打开...
- 02-linux安装nodejs
- mysql事件类型_MySQL binlog中的事件类型
- Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action
- 网易编程题——牛牛的闹钟
- oracle所有自带系统表,oracle常用系统表
- 2825 codevs危险的组合(递推)
- 1	About This Guide
- CSDN博客索引-2
- linux查看操作系统版本的命令
- 0321 复利计算—贷款
- 全球及中国光学空间光调制器(SLM)行业研究及十四五规划分析报告
- 跃居超导和离子阱的量子计算黑马,可编程可扩展的光量子硬件
- 3.2 Java编解码场景及实现
- 全新版大学英语综合教程4课后答案
- mysql sql date_SQL Date
- 开源中国 2014 最受关注开源软件排行榜 TOP 50
- Linux 内存相关问题汇总
- 利用python实现非参数方法(拟合优度检验)
- 进去springstrap显示无响应_勉强算是比较详细的游戏显示器推荐
热门文章
- **使用 Git Hook 实现网站的自动部署
- mysql 相关命令
- 关于PHP.ini文件的设定
- SQL Server开发人员应聘常被问的问题妙解汇总
- 导入语句 python_Python导入语句说明
- java out of range_关于Parameter index out of range求解决办法
- Excel VBA 教程
- 11月18日珠三角城市人口迁徙可视化(和弦图)
- stylus使用文档总结:内置方法+参数+条件+迭代+导入+继承
- Ansible源码解析 Inventory组概念