二叉树的镜像
2015-06-10 17:01
225 查看
题目:请按成一个函数 输入一个二叉树 该函数输出它的镜像
二叉树结点的定义如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode * m_pLeft;
BinaryTreeNode * m_pRight;
};
先序遍历二叉树 如果该结点不是叶子结点 则交换其左右孩子 当交换完所有非叶子结点 就得到了镜像的二叉树
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode * m_pLeft;
BinaryTreeNode * m_pRight;
};
void mirror(BinaryTreeNode * root)
{
BinaryTreeNode *t=NULL;
if(root==NULL || (root->m_pLeft==NULL && root->m_pRight==NULL ))
return;
{
t=root->m_pLeft;
t->m_pLeft=t->m_pRight;
t->m_pRight=t;
}
if(root->m_pLeft!=NULL)
mirror(root->m_pLeft);
if(root->m_pRight!=NULL)
mirror(root->m_pRight);
}
二叉树结点的定义如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode * m_pLeft;
BinaryTreeNode * m_pRight;
};
先序遍历二叉树 如果该结点不是叶子结点 则交换其左右孩子 当交换完所有非叶子结点 就得到了镜像的二叉树
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode * m_pLeft;
BinaryTreeNode * m_pRight;
};
void mirror(BinaryTreeNode * root)
{
BinaryTreeNode *t=NULL;
if(root==NULL || (root->m_pLeft==NULL && root->m_pRight==NULL ))
return;
{
t=root->m_pLeft;
t->m_pLeft=t->m_pRight;
t->m_pRight=t;
}
if(root->m_pLeft!=NULL)
mirror(root->m_pLeft);
if(root->m_pRight!=NULL)
mirror(root->m_pRight);
}
相关文章推荐
- Android的事件处理-android学习之旅(四十四)
- Android的事件处理-android学习之旅(四十四)
- CA升级
- 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- Http 请求处理流程
- 努力摆脱拖延症
- npoi导出excel(模板)
- POJ 2092
- POJ 2080
- POJ 2075
- asp.net中使用ueditor
- 【转】命令行启动虚拟机
- Android strings.xml中空格符的标识步骤附xml特殊字符表示法
- hdu 4288 Coder
- sgu206
- C++10.3.5 map : : insert 的使用(下)(有不懂)
- JS 操作 radio input(cc问卷管理)
- sgu206 分类: sgu 2015-06-10 17:00 29人阅读 评论(0) 收藏
- POJ 2081
- Nginx参数详解