面试题19:二叉树的镜像
来源:互联网 发布:淘宝网首页 编辑:程序博客网 时间:2024/06/05 08:14
在《剑指offer》中有很多题目都是需要画图去理解思路的,在面试的时候如果能配合画图进行说明,也能让面试官更加理解你的思路。今天说说二叉树的镜像问题。
题目:完成一个函数,输入一个二叉树,该函数输出它的镜像。
当我拿到题目的时候,有点懵逼,因为不能理解镜像是个什么鬼。幸好有测试用例等,看了看才明白这里的镜像是个什么意思。
上图这两个二叉树就是互为镜像的。从上图可以看出,一个叶子结点的镜像是围绕着它的父节点展开的。根的镜像还是自己,紧随着根的左子树通过镜像会变成右子树,它的孩子也会进行交换……有咩有发觉这样叙述下去,这些又开始重复了?这样就说明了一个问题,这个问题是可以用递归去解决的。
/*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; if((pRoot->left==NULL) && (pRoot->right==NULL)) return; TreeNode* tmp=pRoot->left; pRoot->left=pRoot->right; pRoot->right=tmp; if(pRoot->left) Mirror(pRoot->left); if(pRoot->right) Mirror(pRoot->right); }};
总结:求一棵树的镜像,首先对这棵树进行前序遍历,如果遍历的这个结点还有子树那么就交换它的两个子结点,等到遍历到最后的时候,所有的结点都已经处理完了,也就完成了要求。
阅读全文
0 0
- 面试题19:镜像二叉树
- [剑指offer][面试题19]二叉树的镜像
- 【剑指offer】面试题19:二叉树的镜像
- 二叉树的镜像 (面试题 19)
- 剑指offer 面试题19 二叉树的镜像
- 剑指Offer:面试题19 二叉树的镜像
- 面试题19 二叉树的镜像
- 面试题19:二叉树的镜像
- 《剑指Offer》面试题19:二叉树的镜像
- 面试题19二叉树的镜像
- 面试题19:二叉树的镜像
- 面试题19二叉树的镜像
- 剑指offer-面试题19:二叉树的镜像
- 剑指Offer----面试题19:二叉树的镜像
- 面试题19:二叉树的镜像
- 面试题19 二叉树的镜像
- 面试题19:二叉树的镜像
- 剑指offer面试题19:二叉树的镜像
- 数据结构之看了也不会懂的>>线段树<<
- 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
- maven打包包含依赖jar Exception in thread "main" org.springframework.beans.fa
- 一个简单的camera管理类
- Linux常用的基础命令大全
- 面试题19:二叉树的镜像
- socket C/C++编程(6)server之accept()函数创建新socket以单独读取缓存区某个client的连接信息(客户端的IP和端口,但是,不包括client端键入的数据)
- 个人笔记_FLASH性质存储器SST25VF016B在STM32F1微控下的操作总结
- 数值转换为时间格式
- mongocxx 查询
- python基础--条件判断:if..elif..else
- 设计创意到底有没有规律
- Windows ECS上如何以正确的姿势配置FTP Server使用NAS
- Android Vibrator 振动器