剑指offer面试题27:二叉树的镜像
2018-03-05 15:40
495 查看
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5AC代码如下:
先用很low的方法测试/*
二叉树镜面
1.功能测试: 根节点不动 所以不用重新申请一个根节点
但需要申请一个temp节点。用来存放交换
2.边界测试 输入的节点为nullptr的时候咋整
3.错误测试
思路:递归
*/
#include<iostream>
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 *pNode)
{
if(pNode==NULL) //边界
return ;
if(pNode->left==NULL &&pNode->right==NULL)//只有一个节点
return ;
TreeNode *pTemp;//交换节点
pTemp=pNode->left;//交换三步
pNode->left=pNode->right;
pNode->right=pTemp;
if(pNode->left)
{
Mirror(pNode->left);
}
if(pNode->right)
{
Mirror(pNode->right);
}
}
};
/*
以下为测试代码
*/
int main()
{
Solution sol;
TreeNode *pRoot=new TreeNode(1);
pRoot->left=new TreeNode(2);
pRoot->right=new TreeNode(3);
cout<<"root:"<<pRoot->val<<"left:"<<pRoot->left->val<<"right:"<<pRoot->right->val<<endl;
sol.Mirror(pRoot);
cout<<"root:"<<pRoot->val<<"left:"<<pRoot->left->val<<"right:"<<pRoot->right->val<<endl;
}
相关文章推荐
- 【剑指offer】面试题27:二叉树的镜像
- 【剑指offer】面试题 27:二叉树的镜像
- 剑指offer--面试题27:二叉树的镜像
- 剑指offer面试题19:二叉树的镜像
- 剑指offer代码解析——面试题19二叉树的镜像
- 剑指offer阅读笔记 之面试题19 实现二叉树的镜像 之 又复习一遍二叉树
- 剑指offer代码解析——面试题19二叉树的镜像
- 剑指offer--面试题19:二叉树的镜像
- 【剑指Offer学习】【面试题19 :二叉树的镜像】
- 剑指offer面试题19二叉树的镜像和二叉树的前中后遍历递归和非递归算法
- 剑指offer 面试题19 二叉树的镜像
- 剑指Offer面试题19(Java版):二叉树的镜像
- 剑指offer_面试题19_二叉树的镜像
- 【剑指Offer】面试题19:二叉树的镜像
- 剑指offer面试题 二叉树的镜像
- 【剑指Offer面试题】 九度OJ1521:二叉树的镜像
- 剑指offer-第四章解决面试题的思路(二叉树的镜像)
- 剑指offer面试题[19]-二叉树的镜像
- [剑指offer][面试题19]二叉树的镜像
- 剑指offer-面试题19-二叉树的镜像