操作给定的二叉树,将其变换为源二叉树的镜像。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作给定的二叉树,将其变换为源二叉树的镜像。相关的知识,希望对你有一定的参考价值。

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。 
输入描述:
二叉树的镜像定义:源二叉树 
    	    8
    	   /      	  6   10
    	 / \\  /     	5  7 9 11
    	镜像二叉树
    	    8
    	   /      	  10   6
    	 / \\  /     	11 9 7  5

 

技术分享
class Solution {
public:
         //栈的非递归
     void Mirror(TreeNode *pRoot) {
         if (pRoot == NULL)return;
         stack<TreeNode*> st;
         TreeNode* p = NULL;
         st.push(pRoot);
         while (st.size())
         {
             p = st.top();
             st.pop();
             swap(p->left, p->right);
             if (p->left)st.push(p->left);
             if (p->right)st.push(p->right);
         }
     }  //队列的非递归
    void Mirror(TreeNode *pRoot) {
         if (pRoot == NULL)return;
         queue<TreeNode*> qu;
         TreeNode* p = NULL;
         qu.push(pRoot);
         while (qu.size())
         {
             p = qu.front();
             qu.pop();
             swap(p->left, p->right);
             if (p->left)qu.push(p->left);
             if (p->right)qu.push(p->right);
         }
    }
    //递归
    void Mirror(TreeNode *pRoot) {
         if (pRoot == NULL)return;
         swap(pRoot->left, pRoot->right);
         Mirror(pRoot->left);
         Mirror(pRoot->right);
    }
};
View Code

 

以上是关于操作给定的二叉树,将其变换为源二叉树的镜像。的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer18:操作给定的二叉树,将其变换为源二叉树的镜像。

剑指Offer操作给定的二叉树,将其变换为源二叉树的镜像。

操作给定的二叉树,将其变换为源二叉树的镜像

N18_二叉树的镜像

剑指Offer-Java-二叉树的镜像

二叉树的镜像