面试题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:二叉树的镜像相关推荐

  1. 剑指offer面试题[19]-二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5 ...

  2. 剑指offer面试题27. 二叉树的镜像(递归)

    题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 详见链接 代码 class Solution:def mirrorTree(self, root:TreeNode)->Tr ...

  3. 【递归】剑指offer——面试题19:二叉树的镜像

    剑指offer--面试题19:二叉树的镜像 Solution1: 递归解法,牢记! 根结点为空的情况容易漏,注意! /* struct TreeNode {int val;struct TreeNod ...

  4. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)

    1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...

  5. 【剑指offer-Java版】19二叉树的镜像

    二叉树的镜像: public class _Q19 {public void MirrorRecursively(BinaryTreeNode tree){if(tree == null) retur ...

  6. 剑指offer(C++)-JZ27:二叉树的镜像(数据结构-树)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 数据范围:二叉树的节点数 0≤n≤10 ...

  7. 剑指offer十八之二叉树的镜像

    一.题目 操作给定的二叉树,将其变换为源二叉树的镜像.二叉树的镜像定义: 源二叉树 : 8/ \6 10/ \ / \5 7 9 11镜像二叉树:8/ \10 6/ \ / \11 9 7 5 二.思 ...

  8. 剑指offer面试题[58]-二叉树的下一个结点

    题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. /* struct TreeLinkNode {int ...

  9. 剑指offer面试题34. 二叉树中和为某一值的路径(先序遍历)(回溯)

    题目描述 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 思路 详见链接 代码 class Solution:def ...

最新文章

  1. [优先队列] 洛谷 P2085 最小函数值
  2. 常见的块状和内联元素
  3. Web服务cxf框架发布2
  4. 数据分析的必备材料:学完可以解决90%以上的数据分析问题
  5. 用java爬虫来提高CSDN博客访问量,浏览量
  6. Openstack的镜像上传原理
  7. telegr怎么连接不上_无线网密码正确但是手机连接不上wifi?
  8. 激光slam_激光SLAM与视觉SLAM的特点
  9. js学习笔记 chapter5 引用类型
  10. 这45个场景,正在被区块链抽筋扒皮…
  11. 单点登录sso认证中心
  12. 做微信营销需要注意的几点
  13. 2021易烊千玺高考成绩查询,易烊千玺高考成绩公布,很多诋毁他的人,瞬间都哑口无言...
  14. 三菱梯形图转换c语言软件,梯形图转51软件(三菱PMW文件转51)
  15. SDN实验(六)——SDN流量监控
  16. 如何批量处理/修改文件的后缀名(使用批处理.bat进行)
  17. 爬虫实例之爬取北京地铁站点
  18. 知行大数据分析平台需求说明
  19. 计算机误删用户且电脑关机了,我的电脑在我把C盘好像是ldquo;用户rdquo;里某的文件删掉后关机蓝屏,现在求救高人:_已解决 - 阿里巴巴生意经...
  20. 有关iOS学习方法拙见

热门文章

  1. MicroStation V8i简体中文版完全补丁安装教程(附安装包下载)
  2. 【ArcGIS风暴】捕捉VS经典捕捉,谁更有用武之地?
  3. Java面向对象编程学习
  4. Android之提示Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider
  5. linux之universal usb installer安装ubuntu
  6. Android之URI简介
  7. 《看聊天记录都学不会C#?太菜了吧》(3)变量:我大哥呢?$:小弟我罩着你!
  8. php运行条件,PHP配置环境要求 php运行的先决条件
  9. 竟然有如何奇葩的如厕方式......
  10. 女友的前男友教我该怎么照顾她......