[剑指offer]面试题19:二叉树的镜像
面试题19:二叉树的镜像
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。
二叉树结点的定义如下:
struct BinaryTreeNode
{int value;BinaryTreeNode *lchild;BinaryTreeNode *rchild;
};
求一棵树的镜像的过程:我们先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。
代码如下:
void MirrorRecursively(BinaryTreeNode *pNode)
{if ((pNode == nullptr) || (pNode->lchild == nullptr && pNode->rchild == nullptr)) return;BinaryTreeNode *pTemp = pNode->lchild;pNode->lchild = pNode->rchild;pNode->rchild = pTemp;if (pNode->lchild)MirrorRecursively(pNode->lchild);if (pNode->rchild)MirrorRecursively(pNode->rchild);
}
测试用例
● 功能测试(普通的二叉树,二叉树的所有结点都没有左子树或者右子树,只有一个结点的二叉树)。
● 特殊输入测试(二叉树的根结点为NULL指针)。
本题考点
● 考查对二叉树的理解。本题实质上是利用树的遍历算法解决问题。
● 考查应聘者的思维能力。树的镜像是一个抽象的概念,应聘者需要在短时间内想清楚求镜像的步骤并转化为代码。应聘者可以画图把抽象的问题形象化,这有助于其快速找到解题思路。
[剑指offer]面试题19:二叉树的镜像相关推荐
- 剑指offer面试题[19]-二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5 ...
- 剑指offer面试题27. 二叉树的镜像(递归)
题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 详见链接 代码 class Solution:def mirrorTree(self, root:TreeNode)->Tr ...
- 【递归】剑指offer——面试题19:二叉树的镜像
剑指offer--面试题19:二叉树的镜像 Solution1: 递归解法,牢记! 根结点为空的情况容易漏,注意! /* struct TreeNode {int val;struct TreeNod ...
- 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...
- 【剑指offer-Java版】19二叉树的镜像
二叉树的镜像: public class _Q19 {public void MirrorRecursively(BinaryTreeNode tree){if(tree == null) retur ...
- 剑指offer(C++)-JZ27:二叉树的镜像(数据结构-树)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 数据范围:二叉树的节点数 0≤n≤10 ...
- 剑指offer十八之二叉树的镜像
一.题目 操作给定的二叉树,将其变换为源二叉树的镜像.二叉树的镜像定义: 源二叉树 : 8/ \6 10/ \ / \5 7 9 11镜像二叉树:8/ \10 6/ \ / \11 9 7 5 二.思 ...
- 剑指offer面试题[58]-二叉树的下一个结点
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. /* struct TreeLinkNode {int ...
- 剑指offer面试题34. 二叉树中和为某一值的路径(先序遍历)(回溯)
题目描述 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 思路 详见链接 代码 class Solution:def ...
最新文章
- [优先队列] 洛谷 P2085 最小函数值
- 常见的块状和内联元素
- Web服务cxf框架发布2
- 数据分析的必备材料:学完可以解决90%以上的数据分析问题
- 用java爬虫来提高CSDN博客访问量,浏览量
- Openstack的镜像上传原理
- telegr怎么连接不上_无线网密码正确但是手机连接不上wifi?
- 激光slam_激光SLAM与视觉SLAM的特点
- js学习笔记 chapter5 引用类型
- 这45个场景,正在被区块链抽筋扒皮…
- 单点登录sso认证中心
- 做微信营销需要注意的几点
- 2021易烊千玺高考成绩查询,易烊千玺高考成绩公布,很多诋毁他的人,瞬间都哑口无言...
- 三菱梯形图转换c语言软件,梯形图转51软件(三菱PMW文件转51)
- SDN实验(六)——SDN流量监控
- 如何批量处理/修改文件的后缀名(使用批处理.bat进行)
- 爬虫实例之爬取北京地铁站点
- 知行大数据分析平台需求说明
- 计算机误删用户且电脑关机了,我的电脑在我把C盘好像是ldquo;用户rdquo;里某的文件删掉后关机蓝屏,现在求救高人:_已解决 - 阿里巴巴生意经...
- 有关iOS学习方法拙见
热门文章
- MicroStation V8i简体中文版完全补丁安装教程(附安装包下载)
- 【ArcGIS风暴】捕捉VS经典捕捉,谁更有用武之地?
- Java面向对象编程学习
- Android之提示Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider
- linux之universal usb installer安装ubuntu
- Android之URI简介
- 《看聊天记录都学不会C#?太菜了吧》(3)变量:我大哥呢?$:小弟我罩着你!
- php运行条件,PHP配置环境要求 php运行的先决条件
- 竟然有如何奇葩的如厕方式......
- 女友的前男友教我该怎么照顾她......