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