剑指offer——二叉树的镜像
2016-06-18 09:28
295 查看
题目:操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
思路:这道题目的实质就是考察递归实现以及对二叉树镜像的理解。我们可以按照一下步骤求解:
1、先判断根是否为空,为空则直接返回,不为空进行下一步
2、交换该根节点的左右子树节点
3、递归调用该根节点的左右孩子。
具体代码如下:欢迎大家批评指正。
/*
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* temp=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=temp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
输入描述:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
思路:这道题目的实质就是考察递归实现以及对二叉树镜像的理解。我们可以按照一下步骤求解:
1、先判断根是否为空,为空则直接返回,不为空进行下一步
2、交换该根节点的左右子树节点
3、递归调用该根节点的左右孩子。
具体代码如下:欢迎大家批评指正。
/*
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* temp=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=temp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
相关文章推荐
- AVL树-自平衡二叉查找树(Java实现)
- 微软镜像下载
- 简述SQL Server 2005数据库镜像相关知识
- SQL Server 2005 镜像构建手册(sql2005数据库同步镜像方案)
- SQL Server误区30日谈 第7天 一个实例多个镜像和日志传送延迟
- SQL Server中避免触发镜像SUSPEND的N种方法
- SQLServer 镜像功能完全实现
- C语言二叉树的非递归遍历实例分析
- 使用C语言构建基本的二叉树数据结构
- 一波二叉树遍历问题的C++解答实例分享
- 举例讲解C语言程序中对二叉树数据结构的各种遍历方式
- C++非递归队列实现二叉树的广度优先遍历
- PHP实现的线索二叉树及二叉树遍历方法详解
- C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
- 图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
- 使用RSYNC在服务器间镜像或者备份目录和文件
- C#非递归先序遍历二叉树实例
- C++将二叉树转为双向链表及判断两个链表是否相交
- C++非递归建立二叉树实例
- C语言实现找出二叉树中某个值的所有路径的方法