题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
递归
class Solution {
public:
void Mirror(TreeNode *pRoot) {
if(pRoot==NULL)
return;
TreeNode *tmp;
tmp=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=tmp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
非递归
class Solution {
public:
void Mirror(TreeNode *pRoot) {
if(pRoot==NULL)
return;
stack<TreeNode*> stackNode;
stackNode.push(pRoot);
while(stackNode.size())
{
TreeNode* tree=stackNode.top();
stackNode.pop();
tmp=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=tmp;
if(pRoot->left!=null)
stackNode.push_back(pRoot->left);
if(pRoot->right!=null)
stackNode.push_back(pRoot->right);
}
}
};