c_cpp 二叉树的镜像的.cpp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二叉树的镜像的.cpp相关的知识,希望对你有一定的参考价值。
/*操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
*/
void Mirror(TreeNode *pRoot) {
if(NULL == pRoot)
{
return;
}
if(NULL != pRoot->left && NULL != pRoot->right)
{
TreeNode temp = *(pRoot->left);
*(pRoot->left) = *(pRoot->right);
*(pRoot->right) = temp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}else
if(NULL != pRoot->left)
{
pRoot->right = new TreeNode(pRoot->left->val);
*(pRoot->right) = *(pRoot->left);
delete pRoot->left;
pRoot->left = NULL;
Mirror(pRoot->right);
}
else
if(NULL != pRoot->right)
{
pRoot->left = new TreeNode(pRoot->right->val);
*(pRoot->left) = *(pRoot->right);
delete pRoot->right;
pRoot->right = NULL;
Mirror(pRoot->left);
}
}
以上是关于c_cpp 二叉树的镜像的.cpp的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 二叉树的直径
c_cpp 二叉树的最大宽度
c_cpp 二叉树的边界遍历
c_cpp 104.二叉树的最大深度
c_cpp C ++二叉树的三种遍历的.cpp
c_cpp 从上往下打印二叉树的.cpp